时间戳与调度指南

JavaScript、Python 与 Go 的时间戳单位

用同一时刻核对不同语言,避免混用 Unix 秒、毫秒和小数时间。

Nav Tools ·

接口明确标明单位

时间戳是带单位和起点的计数,同一个整数按秒或毫秒解读会对应不同时刻。

用固定 UTC 样例检查边界,历史或长度特殊的数值不能只凭位数猜单位。

1704067200 seconds = 1704067200000 milliseconds
Both: 2024-01-01T00:00:00.000Z

JavaScript Date 使用毫秒

Date 的数值构造参数是从 Unix 起点算起的毫秒,Unix 秒传入前需乘 1000。

Date.now 同样返回毫秒,变量名加单位后缀,避免已转换数值被再乘一次。

new Date(1704067200 * 1000).toISOString()
→ "2024-01-01T00:00:00.000Z"

Python 与 Go 明确选择单位

Python time.time 返回秒,通常包含小数;Go time.Time 的 Unix 返回秒、UnixMilli 返回毫秒。

Python 显示时采用明确 UTC 的转换,默认本地时间可能让正确数值看起来不一致。

Python: datetime.fromtimestamp(1704067200, timezone.utc)
Go:     time.Unix(1704067200, 0).UTC()

只在约定边界取整

小数秒携带亚秒精度,转整数秒会丢失该信息,负数时间戳的取整规则也可能不同。

按接收系统精度核对往返,并在日志与接口文档保留单位信息,避免依赖口头习惯。

参考资料

← 时间戳与调度指南