有人能告诉我如何将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