我在GMT中有一个DateTime对象,我想把它转换为EST,这是我当地的时区。我怎么能这样做?
我感到困惑,因为EST是我的本地时区,java假设任何DateTime对象已经在EST中,因此new DateTime(refDate, DateTimeZone.forID('EST'))
不会转换任何内容。
答案 0 :(得分:0)
由于您的日期是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