我不熟悉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吗?谢谢!
答案 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时间。