2008-10-31 69 views
4

我在使用VB.net转换格式为“yyyy-MM-ddZ”的字符串时遇到了问题。如何使用.net将字符串“yyyy-MM-ddZ”转换为日期时间?

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

使用CDate或TryParse它出来2007年10月20日,而不是10/21/2007。

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

根据我的理解,Z指定了零时区。但日期字符串没有时间信息。这个怎么用?

+0

谢谢。我不仅知道日期为什么成为日期之前的日期,而且还说明了如何使日期变得如此,以便我可以得到没有时区转换的日期。 – dtc 2008-11-01 02:15:39

回答

6

尝试

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

0

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

我不能等待答案!

+0

你打算打字DateTime.Parse(“2008-10-31Z”)? (您的帖子中缺少“Z”)。否则你的结果没有意义。 – 2008-11-01 01:31:07

+0

是的,我做到了。感谢您指出了这一点! – Cyberherbalist 2008-11-03 16:16:12

4

将“Z”添加到日期中指定时间为UTC。当您尝试使用TryParse日期时,它会将其转换为当地时间。

8

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

相关问题