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

如何在C#中精确截断TimeSpan至分钟、秒或毫秒?

C#中通用快速截断TimeSpan至指定精度的方法

如果你需要快速且通用地将TimeSpan截断到天、小时、分钟、秒或毫秒级别,可以使用以下扩展方法:

/// <summary>
/// 按照指定精度截断TimeSpan。
/// </summary>
/// <param name="time">要截断的TimeSpan实例</param>
/// <param name="roundTicks">截断精度对应的刻度值:
/// <code>
/// TimeSpan.TicksPerDay - 截断至天
/// TimeSpan.TicksPerHour - 截断至小时
/// TimeSpan.TicksPerMinute - 截断至分钟
/// TimeSpan.TicksPerSecond - 截断至秒
/// TimeSpan.TicksPerMillisecond - 截断至毫秒
/// </code>
/// </param>
/// <returns>截断后的TimeSpan</returns>
public static TimeSpan Trim(this TimeSpan time, long roundTicks) => 
    TimeSpan.FromTicks(time.Ticks - time.Ticks % roundTicks);

调用示例

// 定义起始时间
var d1 = new DateTime(2022, 02, 24, 5, 7, 3);
// 获取当前时间
var d2 = DateTime.Now;

// 截断至天级别
var timeDays = (d2 - d1).Trim(TimeSpan.TicksPerDay);
// 截断至小时级别
var timeDaysAndHours = (d2 - d1).Trim(TimeSpan.TicksPerHour);
// 截断至分钟级别
var timeDaysAndHoursAndMinutes = (d2 - d1).Trim(TimeSpan.TicksPerMinute);

这个方法通过计算TimeSpan的总刻度值对指定精度的刻度值取余,再用总刻度减去余数,实现了精准截断,性能高效且用法灵活,支持所有常见的时间精度需求。

内容的提问来源于stack exchange,提问作者Вячеслав

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:01:12