使用方法
- 「数值」默认填 1,允许 0 到 100000000,支持小数;「源单位」默认 d,「目标单位」默认 us。改任意一项立刻重算,光标停在数值框里按回车同样触发一次换算。
- 「源单位」与「目标单位」各有九个选项:ns、us、ms、s、min、h、d、周、儒略年。按秒折算的因子依次是 1e-9、1e-6、0.001、1、60、3600、86400、604800、31557600。周是 7 天的整数倍,儒略年按 365.25 天算。
- 「小数位」默认 6,范围 0 到 10。它只影响显示,把结果四舍五入到指定位数;内部换算全程用双精度浮点数,不因为显示位数少而降精度。
- 「批量换算」默认已经写好五行示例,每行一条「数值 + 空格 + 单位」,周要写「周」字。按 Ctrl+Enter(Mac 上 Cmd+Enter)一次算完;万一被清空,点换算时会自动填回这五行。
- 结果区给出「原值 源单位 = 结果 目标单位」这一行,下面跟着同一数值展开到九种单位的清单,用来核对数量级有没有看错一位。
- 清单下面是一张 12 行的倍率表,把当前数值乘以 0.001 到 1000 逐个换算,默认显示 6 行,点「加载更多」展开全部,点「导出 CSV」存成带字节序标记的表格文件。
- 「交换单位」把源与目标对调,用来反着核一遍;「复制结果」复制整段结论;「复制对照表」复制正文那张 12 行的天到微秒对照表。
- 数值为负、超过上限、不是数字,或批量行写成「1天」「1 天」这类识别不了的形式,都会给出针对该条的具体提示,不会拿上一次的结果冒充本次输出。
这个天转微秒换算工具能解决什么问题
第一类是日志与监控的时间戳对齐。应用日志打的是毫秒或微秒级时间戳,告警规则写的是「超过 3 天」,两边差了八个数量级;把 3 d 折成 259200000000 us 再与阈值比对,比在脑子里数零可靠得多。
第二类是超时与重试参数。某些接口的超时字段以微秒为单位,而人的直觉以天为单位:1 天是 86400000000 us,0.5 天是 43200000000 us。配置里少写一个零就变成 8.64 天,多写一个零就变成 2.4 小时,都是线上事故。
第三类是「一天到底多少秒」的分歧。平太阳日是 86400 s,恒星日只有 86164.0905 s,两者差 235.9095 s;UTC 因为闰秒会出现 86401 s 的最长日与 86399 s 的最短日,而 Unix 时间戳的一天恒为 86400 s。算跨天时长时选错口径,累计值就会对不上。
第四类是长周期换算。1 儒略年 = 31557600.0 s = 365.25 平太阳日,与日常说的 365 天(31536000 s)差 21600 s;按年计费、按年折旧、按年摊销的场景如果混用这两种年,一年下来就是 6 小时的偏差。
这个工具在本站也叫「天转微秒」,名字里的天默认是平太阳日,下面会讲清它和恒星日、闰秒日的区别。
计算原理与变量说明
本页的换算只有一步:先把输入值折成秒,再从秒折到目标单位。给每个单位配一个「相当于多少秒」的因子 F:ns 是 1e-9、us 是 1e-6、ms 是 0.001、s 是 1、min 是 60、h 是 3600、d 是 86400、周是 604800、儒略年是 31557600。于是 结果 = 数值 × F[源单位] ÷ F[目标单位]。
以默认示例走一遍:输入 1 d,折秒得 1 × 86400 = 86400 s;再折微秒得 86400 ÷ 1e-6 = 86400000000 us。同一数值展开到九种单位时,纳秒那一列是 86400000000000,儒略年那一列是 0.002738,两端相差十六个数量级。
为什么恒星日比太阳日短 3 分 56 秒。恒星日以遥远恒星为参照,地球自转一整圈需要 86164.0905 s;太阳日以太阳为参照,地球在自转的同时还沿公转轨道前进了约 1 度,必须再多转约 3 分 56 秒才能再次对准太阳。这个差值 235.9095 s 就是 86400 减 86164.0905。
为什么 Unix 时间戳没有闰秒。Unix 时间戳定义为「自 1970-01-01 起经过的秒数」,实现上把每一天都当成 86400 s,闰秒那一分钟被重复计数或摊平,不做加减。于是 UTC 实际比 Unix 时间戳多走了已插入的正闰秒次数:截至 27 次正闰秒,累计多走 27 s = 27000000 us。做跨闰秒的时长统计时必须手动补这一项。
闰秒日的边界。插入正闰秒的那一天 UTC 有 86401 s,是最长的一天;若出现负闰秒则是 86399 s,是最短的一天。GPS 时、儒略日、平均回归年都不带闰秒,它们的一天恒为 86400 s = 86400000000 us,与 Unix 时间戳一致而与 UTC 不一致。
微秒的溢出边界。本页用双精度浮点数,它能精确表示的整数上限是 2^53 = 9007199254740992。1000 天折成微秒已经是 86400000000000,比 2^53 还大一个数量级,此时末几位不再精确。需要逐微秒精确的场合请改用整数运算或大数库,本页结果在超大数值下只保证前 15 位有效数字。
完整示例(数值仅作演示)
默认示例是 1 d 换成 us:秒数 = 1 × 86400 = 86400 s,结果 = 86400 ÷ 1e-6 = 86400000000 us。同一数值展开到九种单位是 86400000000000 ns、86400000000 us、86400000 ms、86400 s、1440 min、24 h、1 d、0.142857 周、0.002738 儒略年。
把数值改成 0.5:0.5 d = 43200000000 us。半天这个档常用于「任务最长存活时间」这类配置。
把数值改成 7:7 d = 604800000000 us。一周是 7 个平太阳日的整数倍,与「周」这个单位的定义 604800 s 完全吻合,可以拿来互验。
把数值改成 365:365 d = 31536000000000 us。注意它与 1 儒略年的 31557600000000 us 不同,差 21600000000 us(6 小时),因为儒略年按 365.25 天算。
批量框默认五行,目标单位 us:1 d 得 86400000000 us;0.5 d 得 43200000000 us;7 d 得 604800000000 us;365 d 得 31536000000000 us;1000 d 得 86400000000000 us。最后一行跨到十万亿量级,正好用来观察显示格式有没有退化。
天与微秒对照表
下表把天换成微秒,同时给出秒数,全部按 86400 s 这个平太阳日定义折算。
| 天 d | 微秒 us | 秒 s | 天 d | 微秒 us | 秒 s |
|---|---|---|---|---|---|
| 0.001 | 86400000 | 86.400 | 2.000 | 172800000000 | 172800.000 |
| 0.010 | 864000000 | 864.000 | 7.000 | 604800000000 | 604800.000 |
| 0.100 | 8640000000 | 8640.000 | 30.000 | 2592000000000 | 2592000.000 |
| 0.250 | 21600000000 | 21600.000 | 90.000 | 7776000000000 | 7776000.000 |
| 0.500 | 43200000000 | 43200.000 | 365.000 | 31536000000000 | 31536000.000 |
| 1.000 | 86400000000 | 86400.000 | 1000.000 | 86400000000000 | 86400000.000 |
下面这张表回答「一天到底多少秒」:不同口径差出来的那几秒,在累计计算里会被放大。
| 口径 | 秒 s | 微秒 us | 与平太阳日之差 |
|---|---|---|---|
| 平太阳日(定义) | 86400.0000 | 86400000000 | 基准 |
| 恒星日 | 86164.0905 | 86164090500 | 短 235.9095 s |
| 闰秒日的 UTC 最长 | 86401.0000 | 86401000000 | 长 1 s |
| 负闰秒日的最短 | 86399.0000 | 86399000000 | 短 1 s |
| Unix 时间戳的一天 | 86400.0000 | 86400000000 | 恒为 86400,不闰秒 |
| 儒略日 | 86400.0000 | 86400000000 | 恒为 86400 |
| GPS 时的一天 | 86400.0000 | 86400000000 | 恒为 86400 |
| 平均回归年的一天 | 86400.0000 | 86400000000 | 恒为 86400 |
再看正闰秒是怎么把 UTC 与 Unix 时间戳拉开的,每插入一次就多走一秒。
| 正闰秒次数 | UTC 比 Unix 多走 | 折成微秒 |
|---|---|---|
| 0 | 0 s | 0 us |
| 10 | 10 s | 10000000 us |
| 20 | 20 s | 20000000 us |
| 27 | 27 s | 27000000 us |
读第一张表看量级:天每涨十倍,微秒同步涨十倍,秒那一列始终比微秒少六个零。读第二张表看口径:只有恒星日、闰秒日、负闰秒日三行偏离 86400,其余五行都恒为 86400——这正是「Unix 时间戳没有闰秒」的直接后果。
结果边界、舍入与适用说明
- 数值框为空时提示「数值不能为空,请填 0 到 100000000 之间的数字」,不会拿上一次的结果冒充本次输出。
- 数值里带了单位符号或千分位逗号时提示该串不是有效数字,请只填数字;千分位逗号要去掉再填。
- 数值为负数时提示时长没有负值,请填 0 或更大的数,不返回负数也不取绝对值。
- 数值超过 100000000 时提示超出上限,请改小或换成更大的单位(比如把 us 换成 d 再填)。
- 小数位不是 0 到 10 的整数时提示请填整数位数,本页不按小数位数做插值。
- 批量行缺少单位、数值不是数字、或单位不在九种之内时,分别给出行号与具体原因,例如「批量第 2 行「1天」无法解析(缺少单位,请写成「1 d」)」。
- 结果绝对值小于 1e-9 或大于等于 1e16 时改用科学计数法显示;超过 2^53 = 9007199254740992 的整数末几位不再精确,逐微秒对账请用整数运算。
- 本页的「天」一律指 86400 s 的平太阳日,闰秒与恒星日只在正文对照表里出现,不参与换算;页面不联网、不写本地存储。
常见问题
1 天为什么是 86400 秒而不是 86164 秒?
86400 是平太阳日,以太阳为参照;86164.0905 是恒星日,以遥远恒星为参照,两者差 235.9095 s。地球自转一圈的同时还沿公转轨道前进约 1 度,必须再多转约 3 分 56 秒才能再次对准太阳。日常计时、Unix 时间戳、GPS 时用的都是平太阳日。
Unix 时间戳遇到闰秒会怎么样?
不会怎么样——它把每一天都当成 86400 s,闰秒那一分钟被重复计数或摊平处理,时间戳本身不加不减。代价是 UTC 比 Unix 时间戳多走了已插入的正闰秒次数,截至 27 次就是多走 27 s = 27000000 us,跨闰秒做时长统计时要手动补。
儒略年和平时说的一年差多少?
儒略年按 365.25 天算,是 31557600.0 s;日常说的 365 天是 31536000 s,两者差 21600 s(6 小时),折成微秒是 21600000000 us。按年计费或折旧时先确认用哪个年。
1 微秒占一天的多大比例?
1 us ÷ 86400 s = 0.00000000001157,也就是约千亿分之一。这个比例常被用来判断某个精度要求是否现实:要在一天的时间跨度上分辨到微秒,需要约 12 位有效数字。
结果超过 9007199254740992 之后还准吗?
只保证前 15 位有效数字。本页用双精度浮点数,它能精确表示的整数上限是 2^53 = 9007199254740992;1000 天折成微秒已经是 86400000000000,超出这个上限,末几位不再精确。逐微秒对账请改用整数运算或大数库。
批量框里写「1天」为什么报错,写「1 d」就行?
单位必须逐字匹配九种之一:ns、us、ms、s、min、h、d、周、儒略年,大小写敏感。「1天」中间没有空格,无法切出数值与单位;写成「1 d」才能识别。周要写「周」字,儒略年要写「儒略年」三字。
这个工具免费吗?
免费,无需注册即可使用。
输入的数据安全吗?
安全。计算在当前浏览器本地完成,不会上传输入内容。
相关工具
- 秒转天:从秒往上折 86400,与本页面正好是反方向,可以互验。
- 天转分钟:只差 1440 这一级,排班与工时统计用得多。
- 微秒转秒:先落回秒这个基准单位,再往其他时间单位折。
- 毫秒转天:日志时间戳最常见的一档换算,跨八个数量级。
- Unix 时间戳转换器:把秒数接上具体日期,核对闰秒与跨天边界时用。