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