我有一些xxh:yym格式的字符串,其中xx是小時,yy是類似「05h:30m」的分鐘。將這種類型的字符串轉換爲TimeSpan的優雅方法是什麼?解析字符串到TimeSpan
29
A
回答
26
這似乎是工作,但它是一個有點hackish:
TimeSpan span;
if (TimeSpan.TryParse("05h:30m".Replace("m","").Replace("h",""), out span))
MessageBox.Show(span.ToString());
1
是TimeSpan.Parse和TimeSpan.TryParse沒有選擇?如果您未使用「已批准」格式,則需要手動進行解析。我可能會在正則表達式中捕獲你的兩個整數值,然後嘗試將它們解析爲整數,從那裏你可以用它的構造函數創建一個新的TimeSpan。
6
DateTime.ParseExact
或DateTime.TryParseExact
可讓您指定輸入的確切格式。在獲得DateTime
後,您可以獲取TimeSpan
的DateTime.TimeOfDay
。
在沒有TimeSpan.TryParseExact
的情況下,我認爲一個「優雅」的解決方案是混合在一起的。
@buyutec如你所懷疑的,如果時間跨度超過24小時,這種方法將不起作用。
2
Here'e一種可能性:
TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
如果你想在你的代碼更優雅,使用擴展方法:
public static TimeSpan ToTimeSpan(this string s)
{
TimeSpan t = TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
return t;
}
然後,你可以做
"05h:30m".ToTimeSpan();
2
相關問題
- 1. TimeSpan不會解析某些字符串
- 2. 以HH.mm格式解析字符串到TimeSpan
- 3. 解析用戶輸入時間字符串到DateTime/TimeSpan類(C#)
- 4. 將時間值的字符串表示解析爲TimeSpan
- 5. 爲什麼TimeSpan字符串格式化解析爲異常?
- 6. 解析Json到字符串
- 7. 解析字符串到C++
- 8. 解析:字符串到XML
- 9. 解析字符串到java.sql.date
- 10. 解析字符串到雙
- 11. 解析解析字符串
- 12. Excel(字符串)到數據庫(TimeSpan)
- 13. 字符串到TimeSpan通過模式
- 14. 格式化TimeSpan字符串
- 15. 解析字符串
- 16. 解析字符串
- 17. 字符串解析
- 18. 解析字符串
- 19. 解析字符串
- 20. 解析字符串
- 21. 解析字符串
- 22. 解析字符串
- 23. 解決TimeSpan解析24:00
- 24. 解析字符串 - Http字符串
- 25. 解析字符串和子字符串
- 26. 解析字符串 - 從字符串
- 27. 解析數字字符串
- 28. Xml解析器 - 字符串::找到
- 29. JSON解析數據庫到字符串
- 30. 解析字符串到使用Java
我會建議使用也許`TimeSpan.TryParse(「hh'h:‘mm'm’」,走出跨度)`一個更清潔,更可靠的解決方案 – mike 2011-01-04 23:54:40
除了當字符串爲25H:30米 – 2011-09-14 08:39:03
注意:此解決方案僅限於23h:59m – fubo 2013-07-26 13:17:58