将UTC转换为东部主导时间(EDT或EST)



有人能告诉我如何将JodaTime中的UTC日期转换为东部主导时间(根据一年中的时间,是EST还是EDT?)

使用withZone()将Joda Time对象转换为不同的时区。

Joda自己处理。使用一个地方的时区和区域设置之间有一点区别。

看看下面的例子。

使用区域设置:

使用@BillMan的建议将DateTimeZone设置为区域设置实际上会更改时区。

System.out.println("Winter " + DateTime.now(DateTimeZone.UTC).parse("2015-12-01T12:00:00").toDateTime(DateTimeZone.forID("America/New_York")).toString());
System.out.println("Summer " + DateTime.now(DateTimeZone.UTC).parse("2015-05-01T12:00:00").toDateTime(DateTimeZone.forID("America/New_York")).toString());

返回:

Winter 2015-12-01T12:00:00.000-05:00
Summer 2015-05-01T12:00:00.000-04:00

使用时区:

请注意,这两个时间都设置为12:00:00,Summer中的结果移动了一个小时,(但偏移量保持不变)

System.out.println("Winter " + DateTime.now(DateTimeZone.UTC).parse("2015-12-01T12:00:00").toDateTime(DateTimeZone.forID("EST")).toString());
System.out.println("Summer " + DateTime.now(DateTimeZone.UTC).parse("2015-05-01T12:00:00").toDateTime(DateTimeZone.forID("EST")).toString());

返回:

 Winter 2015-12-01T12:00:00.000-05:00
 Summer 2015-05-01T11:00:00.000-05:00

相关内容

  • 没有找到相关文章

最新更新