时间戳与调度指南
时间戳排序:精度、负值与范围边界
事件排序前统一单位,保留亚秒精度,并检查日期范围与负值。
先统一单位
原始秒数和毫秒数直接比较只是在比较计数,单位不同可能让更小的数对应更晚的时刻。
排序前统一到约定单位,来源契约不同时应保留原单位信息。
负值有合法含义
负 Unix 时间戳表示起点之前的时刻,不自动等于错误或无符号 ID。
下面是 UTC 1970 起点前一秒,历史值有歧义时明确指定单位,不能套用现代位数经验。
-1 second → 1969-12-31T23:59:59.000Z保留必要精度
落在同一整数秒的事件可能在毫秒或微秒上不同,过早取整会丢掉顺序证据。
JavaScript Date 提供毫秒精度,其他来源可以更细,应保留原高精度值或约定的次级排序键。
检查范围与同值排序
日期库支持范围有限,看起来是数值的输入仍可能溢出或超出日期范围。
测试支持边界和相同时间戳,分布式事件还可能需序列号,墙上时钟不能单独提供完整因果顺序。