Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ISO 8601格式的时间段转换为滴答声/毫秒_C#_.net_Datetime_Date_Time - Fatal编程技术网

C# 将ISO 8601格式的时间段转换为滴答声/毫秒

C# 将ISO 8601格式的时间段转换为滴答声/毫秒,c#,.net,datetime,date,time,C#,.net,Datetime,Date,Time,在.NET 3.5中是否有一种内置方法可以将周期转换为.NET时间跨度/滴答声/毫秒?不幸的是,没有任何东西直接内置到.NET中 在.NET 4之前没有TimeSpan.ParseExact,如果字符串的组成部分已知,就可以使用它。即使在.NET框架中没有直接实现这样一个功能的东西,我记得它的一个端口调用了.NET 从第一个角度来看,他在这里实现了一些东西。也许你应该在这个项目中做一些进一步的调查。没有内置的方法。事实上,将事情进一步复杂化与时间跨度或任何其他精确的时间测量方法完全不兼容。原因是

在.NET 3.5中是否有一种内置方法可以将周期转换为.NET时间跨度/滴答声/毫秒?

不幸的是,没有任何东西直接内置到.NET中


在.NET 4之前没有
TimeSpan.ParseExact
,如果字符串的组成部分已知,就可以使用它。

即使在.NET框架中没有直接实现这样一个功能的东西,我记得它的一个端口调用了.NET


从第一个角度来看,他在这里实现了一些东西。也许你应该在这个项目中做一些进一步的调查。

没有内置的方法。事实上,将事情进一步复杂化与时间跨度或任何其他精确的时间测量方法完全不兼容。原因是ISO 8601持续时间可以包含年和月。问题是一年可以有365或366天,一个月可以有28至31天。通过将这种不精确的周期与时间上的一个瞬间联系起来,来解决时间问题

除非您运气好,而且句点恰好使用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);

似乎永远都在身边,做你想做的事。

@Timwi:我是简洁的超级粉丝。然而,我也是一个天生友好的人。那么,祝大家工作愉快有什么错呢?因为So(和其他Stack Exchange网络站点)的风格是不这样做。用于讨论。删除它并不是表示它不友好。只是它对这个问题没有任何帮助。请记住,这不是一个带有个性化帖子的讨论论坛。@Richard/Timwi:理解、接受并将在将来坚持:)对于我的特定任务,这通常应该是类似于“PT1S”或“PT0.05999999s”的内容,因此解析不是一个真正的问题。只是想找到一个好的解决方案。谢谢你的回答!被标记为第一个回答。