当我打印日期时,我可以看到偏移量为 -6.00
2012-12-31T18:00:00 -0600
有没有一种干净的方法可以将偏移量添加到日期中,我在 java.util.Date
中看不到任何内容.
我使用以下方式打印日期:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss Z");
String date = sdf.format(new Date(dateInMilliseconds));
最佳答案
偏移量与 TimeZone
有关.
如果您正在使用Calendar
,你可以这样获取时区:
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
如果您有 TimeZone 实例,您可以获取给定日期的偏移量,如下所示:
int offset = tz.getOffset(cal.getTime().getTime());
当您问“我可以添加偏移量吗?”时,我不确定您的意思
如果您想标准化日期,您可以使用 UTC 时间。
您可以使用 SimpleDateFormat 来完成此操作,如下所示:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(new Date()));
现在的输出:
2013-06-25T19:09:10
关于java - 从日期中减去日期偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305258/