C#Timespan毫秒与TotalMilliseconds

在下面的示例中,为什么毫秒属性返回0,但TotalMilliseconds属性返回5000

// 5 seconds TimeSpan intervalTimespan = new TimeSpan(0, 0, 5); // returns 0 intervalTimespan.Milliseconds; // returns 5000.0 intervalTimespan.TotalMilliseconds 

简单:

  • 毫秒是剩下的毫秒,不是一秒钟。
  • TotalMilliseconds是以毫秒表示的时间范围的完整持续时间。

因为Milliseconds返回毫秒部分,而TotalMilliseconds返回Timespan表示的总毫秒数

例如:0:00:05.047

毫秒:47

总毫秒数:5047

这是因为intervalTimespan.Milliseconds; 返回时间跨度的毫秒分量。 在您的时间跨度构造函数中,您只有小时分秒的组件,这就是为什么结果为0. intervalTimespan.TotalMilliseconds – 这会让您获得时间跨度的总毫秒数。 例如:

 // 5 miliseconds TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5); // returns 5 intervalTimespan.Milliseconds; // returns 5 intervalTimespan.TotalMilliseconds 

很明显,Miliseconds只返回TimeSpan毫秒数,而TotalMiliseconds计算TimeSpan代表的毫秒数。

在你的情况下,首先返回0因为你有5秒,第二次返回5000因为5秒== 5000毫秒

TimeSpan有其他重载

 TimeSpan(hour, minute, seconds) TimeSpan(days, hour, minute, seconds) TimeSpan(days, hour, minute, seconds, milliseconds) 

Milliseconds属性将返回实际的毫秒值

TotalMilliseconds返回包括天,小时,分钟和秒在内的总体毫秒数