儒略日是从前推儒略历公元前 4713 年 11 月 24 日正午起算的天数,小数部分表示当天的时间。它的源纪元和单位必须跟着一起走——光看数字,你没法知道它属于哪块钟。
换算公式
Unix 毫秒 = (JD − 2440587.5) × 86400000
转换器按这个关系给出 Unix 秒、epoch 毫秒、ISO 8601 UTC 和可读的 UTC 值。排查日志或导出数据时,请把原始值也留着,方便日后复核换算是否正确。
容易出错的地方
儒略日从正午开始,不是从午夜。Unix 纪元常数里那个 .5,就是用来避免差出 12 小时的关键细节。
更稳妥的做法
- 动手算之前,先确认平台和字段名。
- 数值可能超出 JavaScript 安全整数范围时,用字符串保留原始值。
- 在边界上一次性转换完,之后只存储和比较单位明确的 Unix 值。
- 只有在把结果呈现给人看时,才用具名时区做格式化。
相关格式转换器
Frequent questions:
- Q: Unix 纪元对应哪个儒略日?
- A: 1970 年 1 月 1 日 00:00:00 UTC 对应儒略日 2440587.5。
- Q: 怎么把儒略日转成普通日期?
- A: 减去 2440587.5,再乘以 86,400 得到 Unix 时间戳,然后按日期格式化即可。
- Q: JD 和 MJD 有什么区别?
- A: 简化儒略日等于 JD 减 2400000.5。MJD 从 1858-11-17 的午夜开始,而 JD 从公元前 4713 年的正午开始。