.NET 3.5中是否有内置方法将ISO 8601句点转换为.NET TimeSpan / ticks / milliseconds?
答案 0 :(得分:6)
XmlConvert.ToTimeSpan
似乎永远存在,并且完全符合您的要求。
答案 1 :(得分:2)
即使.Net框架中没有任何内容,我发现Joda.org已经实现了这样的事情,我记得Jon为.Net做了一个名为noda-time的端口
this source code的第一个视图显示他为此目的实施了一些内容。也许你应该在这个项目中做进一步的调查。
答案 2 :(得分:1)
不幸的是,.NET没有直接内置。
在.NET 4之前没有TimeSpan.ParseExact
,如果字符串的组件已知,则可以使用它。
答案 3 :(得分:1)
没有内置方式。更复杂的事情ISO 8601 durations实际上与TimeSpan或任何其他测量时间的确切方法完全不兼容。原因是ISO 8601持续时间可以包含年和月。问题在于一年可以有365天或366天,一个月可以有28到31天。 Joda-Time solves this问题是将这些不准确的时期与时间联系起来。
除非你很幸运并且期间碰巧使用P [YYYY] - [MM] - [DD] T [hh]:[mm]:[ss]格式,因为那时你只是:
string period = "P0003-06-04T12:30:05";
TimeSpan span = new TimeSpan(DateTime.Parse(period.Remove(0,1)).Ticks);