乔达时间的DateTime转换为java.util.Date奇怪的问题

马丁·阿塞诺夫(Martin Asenov):

我遇到一个奇怪的问题。这是描述它的代码片段:

DateTimeZone dtz = DateTimeZone.forOffsetHours(0);

DateTime dt = new DateTime(dtz);

System.out.println(dt);
System.out.println(dt.toDate());

输出为:

2012-02-29T17:24:39.055Z
Wed Feb 29 19:24:39 EET 2012

我位于UTC + 2,但是此操作应该创建一个初始化为UTC时间的java.util.Date对象。我想念什么?

乔恩·斯基特(Jon Skeet):

Date完全不了解时区-它仅表示时间的瞬间(例如Joda Time的Instant类型)。自Unix时代以来仅几毫秒。调用时Date.toString(),它将始终使用系统本地时区将其转换为可读的文本格式。

所以,这里有什么错-只是在一个预期的故障或者含义java.util.Date 它的toString()行为,或两者兼而有之。

(顺便说一句,宁愿DateTimeZone.UTC创建自己的。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章