Timespan.FromHours 用于十进制转换

Timespan.FromHours for decimal conversion

我正在使用 TimeSpan.FromHours(9.30),它给出“09:18:00”,如果我使用 TimeSpan.Parse("09:30"),那么它将 return 09:30。两者相同,但 TimeSpan.FromHours 更安全、更高效。

请指教为什么结果不同?

谢谢,

FromHours 是格式 "h.mm" 的 而不是 ,它是小时的分数。

所以你想要 TimeSpan.FromHours(9.5)(想想“9 个半小时”)

另请参阅:TimeSpan.FromHours(Double)

注意:虽然 FromHours 需要 Double,但它只会精确到最接近的毫秒

TimeSpan.Parse(String) 需要一个时间间隔(注意:取决于系统文化 *)),所以在这里你有例如“09:30”实际上是 9 小时 30 分钟。

*) "dependend on system culture" 表示:“5.123”在美国文化中为 5 秒,123 毫秒,但在使用“,”作为小数点分隔符的文化中会引发异常。有关详细信息,请参阅链接文档。