繁体   English   中英

c#将字符串转换为日期-这是哪种格式?

[英]c# convert string to date - what kind of format is this?

我有以下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个小时前的时间)-因此,我猜测这是某种普遍的时间。

谢谢

看起来像ISO 8601格式。

DateTime.Now.ToString("o")

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

网络提琴

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

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

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

(完整的工作样本)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM