.NET 3.5中有一种内置方法将ISO 8601时间段转换为.NET TimeSpan/ticks /毫秒?将ISO 8601格式的时间段转换为ticks /毫秒
回答
不幸的是,.NET并没有直接构建到.NET中。
.NET 4之前没有TimeSpan.ParseExact
可以在字符串的组件已知的情况下使用。
已标记为第一个回答。 – yas4891 2010-08-18 12:55:50
即使在.Net框架中没有任何东西直接出现,我发现Joda.org已经实现了这样的事情,我记得Jon做了一个端口它。NET称为noda-time。
this source code的第一个视图显示他为此实现了某些功能。也许你应该在这个项目中进一步调查。
感谢您的链接。在那里完成的相当令人印象深刻的工作 – yas4891 2010-08-18 12:25:58
没有内置的方式。事实上,ISO 8601 durations实际上完全不符合TimeSpan或任何其他测量时间的确切方法。原因是ISO 8601的持续时间可能包含数年和数月。问题是一年可能有365或366天,一个月可能有28到31天。 Joda-Time solves this这个问题通过将这些不精确的时间段与瞬间相关联。
除非你是幸运的在期间碰巧使用了P [YYYY] - [MM] - [日] T [HH]:[毫米]:[SS]格式,因为这时你只需:
string period = "P0003-06-04T12:30:05";
TimeSpan span = new TimeSpan(DateTime.Parse(period.Remove(0,1)).Ticks);
对于我的具体任务,这通常应该是像“PT1S”或“PT0.05999999999S”,所以解析不是一个真正的问题。只是想为它获得一个好的解决方案。感谢您的回答! – yas4891 2010-08-18 12:13:46
XmlConvert.ToTimeSpan
似乎已经永远存在,并且完全符合你的要求。
- 1. 将时间转换为秒+毫秒秒
- 2. 将毫秒转换为小时格式
- 3. 转换日小时分秒ISO 8601的
- 4. PHP转换为YouTube时间格式(ISO 8601)
- 5. 转换时间为毫秒?
- 6. UTC/ISO 8601格式的日期转换
- 7. PHP ISO 8601的格式转换问题
- 8. 将毫秒转换为时间码
- 9. 将时间戳转换为毫秒 - MATLAB
- 10. Haskell将时间毫秒转换为UTCTime
- 11. 在毫秒中将毫秒转换为日期时间
- 12. 是否可以将正常日期转换为ISO 8601时间格式?
- 13. SSIS:将ISO 8601字符串转换为日期时间列
- 14. 将ISO 8601时间戳字符串转换为java.time.OffsetDateTime
- 15. 毫秒转换为基本时间
- 16. Python的 - 转换日期为ISO 8601
- 17. 转换日期和时间为毫秒
- 18. 将jiffies转换为毫秒
- 19. 将Ecto.DateTime转换为毫秒
- 20. 如何在ISO中将ISO 8601日期转换为UNIX时间戳?
- 21. 格式时间从秒到毫秒:秒:毫秒:微秒
- 22. 如何将Mysql时间戳转换为sysdate(6)格式(以毫秒为单位)?
- 23. 使用ScriptUpdateProcessor将时间以毫秒为单位转换为Solr日期格式
- 24. 如何将时间以毫秒为单位转换为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'格式?
- 25. 转换一个正常的日期为ISO-8601格式
- 26. 如何将毫秒转换为AngularJS中的格式化日期时间
- 27. 将ntp小时转换为毫秒
- 28. 如何使用Shell将ISO 8601时间戳转换为Unix时间戳?
- 29. 日期从删除秒/毫秒转换为ISO字符串
- 30. 正确的ISO 8601格式
@Timwi:我是一个简洁的风扇。不过,我也是一个自然友善的人。那么祝大家工作愉快,怎么办? – yas4891 2010-08-18 11:14:04
,因为SO(和其他Stack Exchange网站)的风格不这样做。讨论使用http://meta.stackoverflow.com。 – Richard 2010-08-18 11:20:52
通过删除它,我并不表示它不友好。这只是它对问题没有任何贡献。请记住,这不是个性化帖子的论坛。 – Timwi 2010-08-18 11:40:49