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