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

DateTimeOffset.MaxValue.ToUnixTimeMilliseconds()值是否稳定不受闰秒影响?

问题解答

核心结论

DateTimeOffset.MaxValue.ToUnixTimeMilliseconds()的返回值253402300799999是完全稳定的,不会受未来闰秒增减的影响,可以放心用作“从未设置”的标记值。

具体原因

  • .NET的DateTimeOffset类型基于平滑UTC时间尺度,完全不考虑实际UTC中的闰秒。它的时间模型里不存在“23:59:60”这种闰秒时刻,所有时间都是连续的秒数递增,因此DateTimeOffset.MaxValue的内部时间表示是固定不变的。
  • 当系统时间因闰秒调整时,.NET会自动将闰秒“抹平”到相邻的时间点(比如把闰秒的那一秒合并到前一秒或后一秒),不会改变DateTimeOffset.MaxValue对应的逻辑时间点,自然转换为Unix毫秒值的结果也不会变。
  • 从底层实现来看,DateTimeOffset.MaxValue的Ticks值是固定的3155378975999999999,转换为毫秒时就是3155378975999999999 / 10000 = 253402300799999,这个计算是纯数值转换,不存在任何依赖外部时间规则的变量。

优化建议

为了避免重复调用转换方法,同时让代码更清晰,可以直接把这个值定义为常量:

public const long NeverSetTimestamp = 253402300799999;

后续代码里直接使用这个常量做比较和判断,既高效又能确保值的一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:32:07