如何在C#中将30:15的字符串解析为TimeSpan?30:15表示30小时15分钟.
string span = "30:15";
TimeSpan ts = TimeSpan.FromHours(
Convert.ToDouble(span.Split(':')[0])).
Add(TimeSpan.FromMinutes(
Convert.ToDouble((span.Split(':')[1]))));
Run Code Online (Sandbox Code Playgroud)
这似乎并不太优雅.
假设一个时间戳(只是时间或日期和时间),时间可以转到第二天:
00:00:00 < - 午夜
01:00:00 < - 1 AM
23:00:00 < - 11 PM
24:00:00 < - 午夜,白天+ 1
25:00:00 < - 凌晨1点,天+ 1
有什么办法可以轻松地将它解析成一个C#DateTime来执行第二天的结转?换句话说,"01:00:00"将变为"0001-01-01 01:00:00"并且"25:00:00"将变为"0001-01-02 01:00:00".
编辑:
我应该提到这个失败(即FormatException):
DateTime.ParseExact("0001-01-01 25:00:00", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)