.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