如何将'2012-02-06T23:18:17Z'转换为DateTime

lag*_*tto -1 c# xml datetime itunes

我正在创建一个应用程序来解析由C#中提供的iTunes提供的xml,并且我对"添加日期"字段和"修改日期"字段存在一些问题,这些字段具有以下语法:

2012-02-06T23:18:17Z

我试过这个:

DateModified = DateTime.ParseExact(s.Element("DateModified").ToString(), "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

但是应用程序因FormatException而失败

{"String was not recognized as a valid DateTime."}
Run Code Online (Sandbox Code Playgroud)

Gra*_* H. 6

我相信s.Element("DateModified").ToString()没有输出你认为的东西.

这按预期工作:

var d = DateTime.ParseExact("2012-02-06T23:18:17Z", "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString());
Run Code Online (Sandbox Code Playgroud)


Mic*_*Liu 6

如果您正在使用LINQ to XML,那么您可以将元素转换为DateTime; 这会使用正确的格式字符串自动解析日期和时间:

dateModified = (DateTime)s.Element("DateModified");
Run Code Online (Sandbox Code Playgroud)

否则,您可以使用XmlConvert.ToDateTime:

dateModified = XmlConvert.ToDateTime(s.Element("DateModified").Value, XmlDateTimeSerializationMode.Utc);
Run Code Online (Sandbox Code Playgroud)