c#将字符串转换为日期-这是一种什么样的格式

本文关键字:一种 什么样 格式 转换 字符串 日期 | 更新日期: 2023-09-27 18:28:48

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

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

我也尝试了一下这里的帖子中的建议:DateTime.Parse("2012-09-30T23:00:00000000Z")总是转换为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小时前),所以我猜这是某种普遍时间。

感谢

c#将字符串转换为日期-这是一种什么样的格式

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

(完整工作样本)