【发布时间】:2015-08-11 05:04:58
【问题描述】:
我在 GMT 中有一个 DateTime 对象,我想将它转换为我的本地时区 EST。我该怎么做?
我很困惑,因为 EST 是我的本地时区,java 假设任何 DateTime 对象已经在 EST 中,所以 new DateTime(refDate, DateTimeZone.forID('EST')) 没有转换任何东西。
【问题讨论】:
我在 GMT 中有一个 DateTime 对象,我想将它转换为我的本地时区 EST。我该怎么做?
我很困惑,因为 EST 是我的本地时区,java 假设任何 DateTime 对象已经在 EST 中,所以 new DateTime(refDate, DateTimeZone.forID('EST')) 没有转换任何东西。
【问题讨论】:
由于您的日期是 GMT 格式,首先您需要使用 UTC 解析日期,然后将其转换为您的本地时区。
String gmtTime = "2015-05-28 11:36:38.0";
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.S");
DateTime dateTime = fmt.withZoneUTC().parseDateTime(gmtTime);
System.out.println("UTC Time: "+dateTime);
DateTime now = dateTime.toDateTime(DateTimeZone.forID("EST"));
System.out.println("Current EST Time " +now);
UTC Time: 2015-05-28T11:36:38.000Z
Current EST Time 2015-05-28T06:36:38.000-05:00
【讨论】: