将DateTimeZone转换为UTC偏移量

时间:2014-10-27 21:27:08

标签: java jodatime

给定DateTimeZone,我可以像这样得到TimeZone的名称和ID:

DateTimeZone timeZone = new DateTimeZone("America/Chicago");

// Prints "America/Chicago"
System.out.println(timeZone.getID());

// Prints "CDT" (Since it is daylight savings time now)
System.out.println(timeZone.getNameKey(DateTimeUtils.currentTimeMillis()));

// Prints "Central Daylight Time"
System.out.println(timeZone.getName(DateTimeUtils.currentTimeMillis()));

一切都很棒,但我真的想把时区作为UTC偏移。在这种情况下,UTC偏移量看起来像-05:00

如何使用Joda-Time进行此操作?

2 个答案:

答案 0 :(得分:1)

纯粹的Joda解决方案看起来像:

int offsetMillis =
    DateTimeZone.forID("America/Chicago").getOffset(DateTimeUtils.currentTimeMillis());
DateTimeZone zone = DateTimeZone.forOffsetMillis(offsetMillis);
String utcOffset = zone.toString();
System.out.println(utcOffset); // output: -05:00

答案 1 :(得分:0)

您可以使用DateSimpleDateFormatTimeZone来实现您的目标。 通过设置所需的SimpleDateFormat来设置TimeZone。然后使用它来格式化new Date();