这是什么样的格式?

我有以下DateTime字符串2014-11-03 08:44:00:082467 Z

当我尝试做简单的Convert.ToDateTime我得到了错误,它不是一个公认的DateTime字符串。

我也尝试过在这里发布的内容:DateTime.Parse(“2012-09-30T23:00:00.0000000Z”)总是会转换为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小时之前) - 所以我猜这是世界各地的某种时间。

谢谢


这是适用于您的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);

Dotnetfiddle


它看起来像ISO 8601格式。

DateTime.Now.ToString("o")


您在问题中提供的两个日期根本不相同!

假设你的问题适用于第二种,看起来是标准的,答案是:

string s = "2012-09-30T23:00:00.0000000Z";
var date = DateTime.ParseExact(s, "o", CultureInfo.InvariantCulture,
                                   DateTimeStyles.AssumeUniversal |
                                   DateTimeStyles.AdjustToUniversal);
Console.WriteLine(date);

(完整工作样本)

链接地址: http://www.djcxy.com/p/46585.html

上一篇: what kind of format is this?

下一篇: Convert DateTime to Utc only if not already Utc