将字符串解析为TimeSpan

Ser*_*gel 29 c# timespan

我有一些xxh:yym格式的字符串,其中xx是小时,yy是分钟,如"05h:30m".将此类型的字符串转换为TimeSpan的优雅方法是什么?

Lar*_*lum 27

这似乎有用,虽然它有点hackish:

TimeSpan span;


if (TimeSpan.TryParse("05h:30m".Replace("m","").Replace("h",""), out span))
            MessageBox.Show(span.ToString());
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用'TimeSpan.TryParse("hh'h:'mm'm'",out span)`来获得更清晰,更强大的解决方案 (15认同)
  • 除了字符串是25h:30m (3认同)
  • 注意:此解决方案仅限于23小时:59米 (2认同)

Joh*_*han 6

DateTime.ParseExact或者DateTime.TryParseExact让您指定输入的确切格式.得到之后DateTime,你可以抓住DateTime.TimeOfDay哪个是TimeSpan.

如果没有TimeSpan.TryParseExact,我认为一个"优雅"的解决方案是不合适的.

@buyutec如您所料,如果时间跨度超过24小时,此方法将无效.