如何将字符串“yyyy-MM-ddZ”转换为.net的日期时间?

时间:2008-10-31 23:59:12

标签: .net datetime timezone

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

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

使用CDate或TryParse,它发布于2007年10月20日,而不是10/21/2007。

我不理解Z如何影响日期字符串,以便在解析它时导致前一天。

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

4 个答案:

答案 0 :(得分:8)

它将日期解释为午夜祖鲁(GMT)时间,然后将其转换回当地时区。如果您所在的州位于前一天下午3:00到7:00之间。

答案 1 :(得分:6)

尝试

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

答案 2 :(得分:4)

在日期中添加“Z”指定时间为UTC。当您将TryParse CDate为日期时,它会将其转换为当地时间。

答案 3 :(得分:0)

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

我等不及答案了!