我有一些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. 解析字符串到java.sql.date
- 3. 解析:字符串到XML
- 4. Excel(字符串)到数据库(TimeSpan)
- 5. 解析字符串
- 6. 解析字符串
- 7. 解析字符串
- 8. 解析字符串和子字符串
- 9. 解析字符串 - 从字符串
- 10. 解析字符串 - Http字符串
- 11. 解析数字字符串
- 12. 解析JSON字符串到数组
- 13. 解析字符串到整数数组
- 14. 解析Json字符串到Html元素
- 15. 解析字符串值到JsonElement给MalformedJsonException
- 16. 如何解析字符串到双
- 17. 如何解析字符串到Java树?
- 18. 解析json字符串到数组
- 19. 从HttpRequest解析字符串到json/XML
- 20. 解析JSON字符串到NSMutableArray的
- 21. C++字符串解析到Delphi
- 22. 解析字符串到使用Java
- 23. 安全解析字符串到布尔
- 24. 解析一个字符串到JSON
- 25. 解析字符串输出到文件
- 26. 解析一个字符串到日期
- 27. Xml解析器 - 字符串::找到
- 28. 解析Java的字符串到日期
- 29. Clojure解析时间戳到字符串
- 30. 解析配置字符串到JavaScript/JSON
我会建议使用也许`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