Jodatime将外国转换为当地时区

时间:2015-05-28 15:23:48

标签: java jodatime

我在GMT中有一个DateTime对象,我想把它转换为EST,这是我当地的时区。我怎么能这样做?

我感到困惑,因为EST是我的本地时区,java假设任何DateTime对象已经在EST中,因此new DateTime(refDate, DateTimeZone.forID('EST'))不会转换任何内容。

1 个答案:

答案 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