时间戳与调度指南
JavaScript、Python 与 Go 的时间戳单位
用同一时刻核对不同语言,避免混用 Unix 秒、毫秒和小数时间。
接口明确标明单位
时间戳是带单位和起点的计数,同一个整数按秒或毫秒解读会对应不同时刻。
用固定 UTC 样例检查边界,历史或长度特殊的数值不能只凭位数猜单位。
1704067200 seconds = 1704067200000 milliseconds
Both: 2024-01-01T00:00:00.000ZJavaScript 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()只在约定边界取整
小数秒携带亚秒精度,转整数秒会丢失该信息,负数时间戳的取整规则也可能不同。
按接收系统精度核对往返,并在日志与接口文档保留单位信息,避免依赖口头习惯。