You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中计算两个UTC时间的小时差?

如何计算两个UTC时间之间的小时差?

你遇到的问题是因为TimeSpan.Hours属性仅返回时间差中的当日小时部分(范围0-23),不会将天数换算为小时。比如时间差为9天0小时时,Hours只会返回0,而不是9×24=216。

正确的解决方案

使用TimeSpan.TotalHours属性获取总小时数,它会将所有时间单位(天、小时、分钟等)统一换算为小时,返回一个double类型的值:

// var lastSuccessfulRunTime = 2023-01-01T00:00:00Z UTC Time
TimeSpan timeSpan = DateTime.UtcNow - lastSuccessfulRunTime;
// 获取包含天数的总小时数
double totalHours = timeSpan.TotalHours;

// 如果需要整数小时,可根据需求处理:
// 向下取整(比如9.1小时取9)
int timeDifference = (int)Math.Floor(totalHours);
// 四舍五入(比如9.6小时取10)
int timeDifference = (int)Math.Round(totalHours);
// 直接截断小数部分(等同于向下取整正数)
int timeDifference = Convert.ToInt32(totalHours);

关键区别说明

  • Hours:仅提取时间差中的小时段,不包含天数转换,例如9天0小时的Hours值为0。
  • TotalHours:计算时间差的总小时数,包含所有时间单位的换算,例如9天0小时的TotalHours值为216.0。

内容的提问来源于stack exchange,提问作者user989988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:05:21