将HH.mm格式的字符串解析为TimeSpan

dav*_*ooh 26 .net c# time parsing

我正在使用.NET framework v 3.5,我需要将表示时间跨度的字符串解析为TimeSpan对象.

问题是使用分隔符代替冒号...例如13.00,或22.30

所以我想知道如果我要更换.:或有一个更清洁的方式来获得此.

Iva*_*n G 43

解析DateTime并使用其TimeOfDay属性,这是一个TimeSpan结构:

string s = "17.34";
var ts = DateTime.ParseExact(s, "HH.mm", CultureInfo.InvariantCulture).TimeOfDay;
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 10

更新的答案:

遗憾的是,.NET 3不允许使用自定义TimeSpan格式,因此您只需手动执行某些操作即可.我会按你的建议做替换.

原始答案(仅适用于.NET 4+):

使用TimeSpan.ParseExact,指定自定义格式字符串:

var timeSpan = TimeSpan.ParseExact("11.35", "mm'.'ss", null);
Run Code Online (Sandbox Code Playgroud)

  • 他正在使用.NET 3.5 (2认同)