cof*_*fee 10 .net c# datetime iso8601
我有以下格式的ISO 8601时间戳:
YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm]
YYYY-MM-DDThh:mm:ss[{+|-}hh:mm]
Run Code Online (Sandbox Code Playgroud)
例子:
2013-07-03T02:16:03.000+01:00
2013-07-03T02:16:03+01:00
Run Code Online (Sandbox Code Playgroud)
如何将其解析为DateTime正确TimeZone提供的.NET Framework ?
这DateTime.TryParse不起作用,因为有关的尾随信息TimeZone.
Jon*_*eet 14
你应该能够用它来格式化DateTimeOffset和K自定义格式说明.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);
}
}
Run Code Online (Sandbox Code Playgroud)
有一点需要注意的是,它的命名很糟糕 - 它实际上不是一个时区,它只是一个UTC偏移.它实际上并没有告诉你原来的时区.(可能有几个不同的时区同时观察到相同的偏移.)
或者使用Noda Time(不稳定版本,很快就会变成1.2):
string text = "2013-07-03T02:16:03.000+01:00";
OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern;
OffsetDateTime odt = pattern.Parse(text).Value;
Console.WriteLine(odt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6296 次 |
| 最近记录: |