Joda 日期时间构造函数:我是否需要为以 Z 结尾的字符串指定时区?

Joda Datetime Constructor: Do I need to specify TimeZone for a String ending with Z?

我的数据库将所有日期时间值存储为 UTC 中的字符串。当我看字符串时,它们是这样的

2013-05-28T01:38:13.000Z
  1. 根据documentation,'Z'表示时区偏移。由于 'Z' 之后没有任何内容,这是否意味着没有偏移量,因此它代表 UTC 时间?

  2. 如果是,我还需要在构造函数中指定时区吗?由于字符串似乎已经这样做了(说现在是 UTC 时间)?

    DateTime myDate = new DateTime("2013-05-28T01:38:13.000Z", DateTime.UTC); 
    

第二个参数是必须的吗? 谢谢

是的。您仍然需要传递时区 (UTC)。

这是因为仅字符串参数会正确提取年、月等值,但随后将它们解释为属于默认时区,而不是解析 Z+-x 部分。

(我承认这有点令人困惑。)

您可以在另一个问题 with call trace 中查看更多详细信息,以及下面的评论以更好地解释 Z

的含义