Csharp/C#教程:使用时区解析ISO 8601到.NET datetime分享


使用时区解析ISO 8601到.NET datetime

我有一个ISO 8601时间戳格式:

YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm] YYYY-MM-DDThh:mm:ss[{+|-}hh:mm] 

例子:

 2013-07-03T02:16:03.000+01:00 2013-07-03T02:16:03+01:00 

如何使用提供的正确TimeZone将其解析为.NET Framework DateTime

DateTime.TryParse不起作用,因为有关TimeZone的尾随信息。

您应该能够使用DateTimeOffsetK自定义格式说明符对其进行格式化 。 然后,如果您愿意,可以将其转换为DateTime 。 示例代码:

 using System; using System.Globalization; class Test { static void Main() { string text = "2013-07-03T02:16:03.000+01:00"; string pattern = "yyyy-MM-dd'T'HH:mm:ss.FFFK"; DateTimeOffset dto = DateTimeOffset.ParseExact (text, pattern, CultureInfo.InvariantCulture); Console.WriteLine(dto); } } 

有一点需要注意的是,它的命名很糟糕 – 它实际上不是一个时区,它只是一个UTC偏移。 它实际上并没有告诉你原来的时区。 (可能有几个不同的时区同时观察到相同的偏移。)

或者使用Noda Time (不稳定版本,很快就会变成1.2):

上述就是C#学习教程:使用时区解析ISO 8601到.NET datetime分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 string text = "2013-07-03T02:16:03.000+01:00"; OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern; OffsetDateTime odt = pattern.Parse(text).Value; Console.WriteLine(odt); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1251005.html

(0)
上一篇 2022年11月8日
下一篇 2022年11月8日

精彩推荐