首页 > 解决方案 > System.TimeSpan.Parse 对 HH:MM:SS 的解析不正确,其中 HH >= 24

问题描述

在解析 HH 大于 24 的 HH:MM:SS 格式的字符串时,这似乎会错误地解析时间跨度:

[MultiTenant\Exchange\] PS C:\Users\vijara> [System.TimeSpan]::Parse("24:00:00")


Days              : 24
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 0
Ticks             : 20736000000000
TotalDays         : 24
TotalHours        : 576
TotalMinutes      : 34560
TotalSeconds      : 2073600
TotalMilliseconds : 2073600000

任何高于 23 的 HH 值都是这种情况。

[MultiTenant\Exchange\] PS C:\Users\vijara> [System.TimeSpan]::Parse("45:00:00")


Days              : 45
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 0
Ticks             : 38880000000000
TotalDays         : 45
TotalHours        : 1080
TotalMinutes      : 64800
TotalSeconds      : 3888000
TotalMilliseconds : 3888000000

标签: c#.nettimespan

解决方案


因为一天不能超过24小时。一旦解析方法看到大于 24 的数字,它就会假定您需要天数。

与演示目的不同的值相同


推荐阅读