使用DateTime类joda时间库以UTC格式读取UTC时间戳作为UTC时间

时间:2016-06-10 15:03:41

标签: java datetime jodatime

我在字符串中有一个时间戳,以UTC时区为单位,我希望在joda时间库中使用DateTime在UTC时区中读取它。

示例:

String utcTs = "2016-06-01T14:46:22.001Z";

当我在stmt。下面尝试时,DateTime正在读取它并转换到应用程序运行的servertimezone !!

DateTime dtUtcTs = new DateTime(utcTs);

有没有办法可以强制DateTime读取字符串时间戳为UTC?

我的应用服务器在CST中,当用SOP stmt打印日期时,我正在观察CST时间而不是UTC !!

System.out.println(dtUtcTs) ==>在运行应用程序的服务器中给我日期!!

非常感谢!!

import org.joda.time.DateTime;

public class TestClass {

public static void main(String[] args) {

String utcTs = "2016-06-01T14:46:22.001Z";
DateTime dtUtcTs = new DateTime(utcTs);

System.out.println(dtUtcTs)

}
}

下面是我看到的输出,我的应用程序服务器在CST中 区域

2016-06-01T09:46:22.001-05:00

使用 joda time version 2.9.1

1 个答案:

答案 0 :(得分:0)

您可以使用DateTime的{​​{1}}构造函数的重载:

DateTimeZone

另一种选择是使用DateTime dtUtcTs = new DateTime(utcTs, DateTimeZone.UTC); ,以便您可以指定完全您期望的格式以及您想要的时区。

DateTimeFormatter