我在使用 VB.net 转换格式为“yyyy-MM-ddZ”的字符串时遇到问题。
例如,我有字符串“2007-10-21Z”。
使用 CDate 或 TryParse 可以得出 2007 年 10 月 20 日而不是 2007 年 10 月 21 日。
我不明白 Z 如何影响日期字符串,以便在解析它时会在前一天产生结果。
据我了解 Z 指定零时区。但是日期字符串没有时间信息。这是如何运作的?
它将日期解释为午夜 Zulu (GMT) 时间,然后将其转换回您当地的时区。如果您在前一天下午 3:00 到晚上 7:00 之间的美国。
尝试
DateTime.ParseExact("2007-10-21Z", "yyyy-MM-ddZ", CultureInfo.InvariantCulture);
将“Z”添加到日期指定时间为UTC。当您对 TryParse 日期进行 CDate 时,它会将其转换为本地时间。
哇,这很有趣。我尝试在 C# DateTime.Parse("2008-10-31").ToString(); 结果是“10/30/2008 5:00:00 PM”。
我等不及要回答了!