4

我在使用 VB.net 转换格式为“yyyy-MM-ddZ”的字符串时遇到问题。

例如,我有字符串“2007-10-21Z”。

使用 CDate 或 TryParse 可以得出 2007 年 10 月 20 日而不是 2007 年 10 月 21 日。

我不明白 Z 如何影响日期字符串,以便在解析它时会在前一天产生结果。

据我了解 Z 指定零时区。但是日期字符串没有时间信息。这是如何运作的?

4

4 回答 4

8

它将日期解释为午夜 Zulu (GMT) 时间,然后将其转换回您当地的时区。如果您在前一天下午 3:00 到晚上 7:00 之间的美国。

于 2008-11-01T00:23:23.487 回答
6

尝试

DateTime.ParseExact("2007-10-21Z", "yyyy-MM-ddZ", CultureInfo.InvariantCulture);

于 2008-11-01T01:04:54.820 回答
4

将“Z”添加到日期指定时间为UTC。当您对 TryParse 日期进行 CDate 时,它​​会将其转换为本地时间。

于 2008-11-01T00:22:51.567 回答
0

哇,这很有趣。我尝试在 C# DateTime.Parse("2008-10-31").ToString(); 结果是“10/30/2008 5:00:00 PM”。

我等不及要回答了!

于 2008-11-01T00:18:21.920 回答