我有以下DateTime字符串2014-11-03 08:44:00:082467 Z
当我尝试做简单的Convert.ToDateTime
时,我得到了错误,认为它不是公认的DateTime字符串。
我也尝试了帖子中的建议:DateTime.Parse("2012-09-30T23:00:00.0000000Z") always converts to DateTimeKind.Local
var date = DateTime.ParseExact("2012-09-30T23:00:00.0000000Z",
"yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
但得到了同样的错误。这是什么类型的DateTime字符串?以及如何将其转换为DateTime对象?而且,这不是当前的时间(我是2小时前) - 所以我猜这是一种普遍的时间。
由于
答案 0 :(得分:1)
看起来像ISO 8601格式。
DateTime.Now.ToString("o")
答案 1 :(得分:1)
这是适用于string
的格式,但根据ISO 8601标准 不是有效字符串:
var date = DateTime.ParseExact("2014-11-03 08:44:00:082467 Z",
"yyyy-MM-dd' 'HH:mm:ss:ffffff' Z'",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
答案 2 :(得分:0)
您在问题中提供的两个日期完全不同!
假设您的问题适用于第二个,看起来像标准,答案是:
string s = "2012-09-30T23:00:00.0000000Z";
var date = DateTime.ParseExact(s, "o", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(date);
(完整的工作样本)