如果未指定时区,Joda DateTimeFormatter中的默认时区是什么?

时间:2017-07-20 21:38:02

标签: java jodatime

我不熟悉Joda DateTimeFormatter,所以我想知道是否没有为DateTimeFormatter指定时区,默认时区是什么?例如,我有:

DateTimeFormatter stdFormatter = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTime today = stdFormatter.parseDateTime("07/20/2017");

在这种情况下,today的时区是什么?它是默认情况下2017-07-20 00:00:00 UTC吗?谢谢!

1 个答案:

答案 0 :(得分:0)

参考DateTime文档here,DateTime在内部将值存储为1970-01-01T00:00:00Z之后的毫秒数,其中Z是UTC区域。

输出的方式取决于您决定如何格式化(即如果您想在不同的时区打印DateTime,您可以使用Joda库来执行此操作)。

在这种情况下,DateTimeFormat.forPattern使用JVM默认语言环境,该语言环境由Locale.getDefault()确定,无论您可能是什么。因此,您的DateTime将包含'07/20/2017 00:00:00 {YOUR TIME ZONE}'的UTC时间。

假设您的时区是PDT(即UTC-7)。然后“07/20/2017 00:00:00 PDT”==“07/20/2017 07:00:00 UTC”。您的DateTime对象将存储该UTC时间。