有人可以告诉我如何将JodaTime中的UTC日期转换为东部盛行时间(根据一年中的时间,是EST还是EDT?)
答案 0 :(得分:4)
使用withZone()将Joda-Time对象转换为其他时区。
答案 1 :(得分:2)
Joda自己照顾它。使用TimeZone和场所的区域设置之间存在细微差别。
请看下面的例子。
使用区域设置:
使用@ 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
使用TimeZone:
请注意,两个时间都设置为12:00:00,夏天的结果移动了一个小时(但偏移量保持不变)
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