Joda 日期时间构造函数:我是否需要为以 Z 结尾的字符串指定时区?
Joda Datetime Constructor: Do I need to specify TimeZone for a String ending with Z?
我的数据库将所有日期时间值存储为 UTC 中的字符串。当我看字符串时,它们是这样的
2013-05-28T01:38:13.000Z
根据documentation,'Z'表示时区偏移。由于 'Z' 之后没有任何内容,这是否意味着没有偏移量,因此它代表 UTC 时间?
如果是,我还需要在构造函数中指定时区吗?由于字符串似乎已经这样做了(说现在是 UTC 时间)?
DateTime myDate = new DateTime("2013-05-28T01:38:13.000Z", DateTime.UTC);
第二个参数是必须的吗?
谢谢
是的。您仍然需要传递时区 (UTC)。
这是因为仅字符串参数会正确提取年、月等值,但随后将它们解释为属于默认时区,而不是解析 Z+-x 部分。
(我承认这有点令人困惑。)
您可以在另一个问题 with call trace 中查看更多详细信息,以及下面的评论以更好地解释 Z
的含义
我的数据库将所有日期时间值存储为 UTC 中的字符串。当我看字符串时,它们是这样的
2013-05-28T01:38:13.000Z
根据documentation,'Z'表示时区偏移。由于 'Z' 之后没有任何内容,这是否意味着没有偏移量,因此它代表 UTC 时间?
如果是,我还需要在构造函数中指定时区吗?由于字符串似乎已经这样做了(说现在是 UTC 时间)?
DateTime myDate = new DateTime("2013-05-28T01:38:13.000Z", DateTime.UTC);
第二个参数是必须的吗? 谢谢
是的。您仍然需要传递时区 (UTC)。
这是因为仅字符串参数会正确提取年、月等值,但随后将它们解释为属于默认时区,而不是解析 Z+-x 部分。
(我承认这有点令人困惑。)
您可以在另一个问题 with call trace 中查看更多详细信息,以及下面的评论以更好地解释 Z
的含义