如何转换“2012-02-06T23:18:17Z”到日期时间

发布于 2025-01-05 05:24:30 字数 415 浏览 4 评论 0原文

我正在创建一个应用程序来解析 C# 中 iTunes 提供的 xml,但我在字段“添加日期”和“修改日期”方面遇到一些问题,这些字段的语法如下:

2012-02-06T23:18:17Z

i'我尝试过这个:

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

但是应用程序失败并出现 FormatException

{"String was not recognized as a valid DateTime."}

I'm creating an application to parse the xml provided by iTunes in C# and i'm having some issues with the fields 'Date Added' and 'Date Modified' which have this syntax:

2012-02-06T23:18:17Z

i've tried this:

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

but the application fails with an FormatException

{"String was not recognized as a valid DateTime."}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半葬歌 2025-01-12 05:24:30

我相信 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());

I believe s.Element("DateModified").ToString() is not outputting what you think it is.

This works as expected:

var d = DateTime.ParseExact("2012-02-06T23:18:17Z", "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString());
℡Ms空城旧梦 2025-01-12 05:24:30

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

dateModified = (DateTime)s.Element("DateModified");

否则,您可以使用 XmlConvert.ToDateTime

dateModified = XmlConvert.ToDateTime(s.Element("DateModified").Value, XmlDateTimeSerializationMode.Utc);

If you are using LINQ to XML, then you can just cast the element to DateTime; this automatically parses the date and time with the correct format string:

dateModified = (DateTime)s.Element("DateModified");

Otherwise, you can use XmlConvert.ToDateTime:

dateModified = XmlConvert.ToDateTime(s.Element("DateModified").Value, XmlDateTimeSerializationMode.Utc);
和我恋爱吧 2025-01-12 05:24:30

没什么花哨的:

var str = "2012-02-06T23:18:17Z";
DateTime t = DateTime.Parse(str, CultureInfo.InvariantCulture);
t.ToUniversalTime();

Nothing fancy:

var str = "2012-02-06T23:18:17Z";
DateTime t = DateTime.Parse(str, CultureInfo.InvariantCulture);
t.ToUniversalTime();
无语# 2025-01-12 05:24:30

假设这是 Linq to Xml,您需要获取元素的,因此请执行以下操作:

DateModified = DateTime.ParseExact(s.Element("DateModified").Value, "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture);

Assuming this is Linq to Xml you need to grab the value of the Element, so do this instead:

DateModified = DateTime.ParseExact(s.Element("DateModified").Value, "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文