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

有没有更优雅的方法移除TimeSpan中的秒数?

TimeSpan去除秒数实现方案说明

原有实现的合理性

你当前的写法是可以满足基础需求的,可读性也很高,但仅适用于TimeSpan值不超过24小时、不包含天数分量的场景。
如果你的TimeSpan可能携带天数(例如值为2.09:05:40,代表2天9小时5分40秒),该写法会丢失天数分量,仅保留小时、分钟,最终结果不符合预期。

更通用的优雅方案

推荐使用Ticks截断的方案,不管TimeSpan是否包含天数都能正确生效,同时会自动清除毫秒、微秒等更小的时间分量,结果更严谨:

myTimeSpan = new TimeSpan(myTimeSpan.Ticks / TimeSpan.TicksPerMinute * TimeSpan.TicksPerMinute);

如果只需要清除秒、保留毫秒,可以用更直观的减法写法:

myTimeSpan = myTimeSpan - TimeSpan.FromSeconds(myTimeSpan.Seconds);

选型建议

  • 若你能确定业务中TimeSpan永远不会超过24小时,原有写法完全可用,无需调整
  • 若需要兼容所有可能的TimeSpan取值,优先选择Ticks截断方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:36:04