时间单位换算器
在毫秒、秒、分钟、小时、天、周、月、年之间双向换算,支持复合时长字符串解析与毫秒转人类可读表示。适用于缓存 TTL、超时配置、调度间隔、日志时间差等开发场景。月年采用 Gregorian 历法平均值(1 年 = 365.2425 天)精确换算,所有计算在浏览器本地完成。
单位换算
输入一个数值与源单位,实时查看它在 8 个时间单位下的对应值。
y近似mo近似wdh源minsms时长解析
输入复合时长字符串(如「1h 30min」「2天3小时」「500ms」),自动解析为累计毫秒与人类可读表示。支持中英文混用、小数、空格可选。
54000001 小时 30 分钟- 1小时→
3600000 ms - 30分钟→
1800000 ms
毫秒转人类可读
输入毫秒数,输出复合中文表示。适用于日志时间差、缓存 TTL、超时配置的可读化展示。
1 天 1 小时 10 分钟常见问题
时间单位换算器支持哪些单位?
支持 8 种时间单位互转:毫秒(ms)、秒(s)、分钟(min)、小时(h)、天(d)、周(w)、月(mo)、年(y)。输入一个数值与源单位,即可同时看到它在全部 8 个单位下的对应值,每张卡片均可一键复制。
月和年的换算为什么标注「近似」?
月和年是日历单位,长度随月份与闰年变化:1 月可能是 28、29、30 或 31 天,1 年可能是 365 或 366 天。本工具采用 Gregorian 历法平均值进行换算:1 年 = 365.2425 天(400 年循环平均,含 97 个闰日),1 月 = 365.2425 / 12 ≈ 30.436875 天。这种约定与 ISO 8601 duration、Java java.time.Duration、Python timedelta 等主流库一致,适合需要统一换算系数的场景。若你需要精确日历推算(如「2026-01-01 加 1 个月」),应使用专门的日期库而非本工具。
1 个月到底等于多少天?为什么不同月份天数不同?
实际日历中,1 月、3 月、5 月、7 月、8 月、10 月、12 月为 31 天,4 月、6 月、9 月、11 月为 30 天,2 月平年 28 天、闰年 29 天。因此「1 个月等于多少天」没有唯一答案。本工具采用平均值 30.436875 天,这是 Gregorian 历法 400 年循环中所有月份的平均长度。换算示例:1 月 ≈ 30.436875 天 ≈ 730.484 小时 ≈ 2,629,746 秒。如果你需要按特定月份计算,请使用专门的日期库(如 JavaScript 的 Date 对象加减月份)。
1 年等于多少秒?闰年如何影响换算?
平年 365 天 = 31,536,000 秒,闰年 366 天 = 31,622,400 秒。Gregorian 历法 400 年循环中有 97 个闰日,平均每年 365.2425 天 = 31,556,952 秒。本工具使用此平均值换算,因此「1 年 = 31,556,952 秒」、「1 年 ≈ 52.1775 周」。闰年规则:能被 4 整除但不能被 100 整除,或能被 400 整除的年份为闰年(如 2024 是闰年,2100 不是闰年)。
如何把「1h 30min」这样的复合时长转成毫秒?
使用本工具的「时长解析」模块,输入 1h 30min 即可解析为 5,400,000 毫秒,同时显示人类可读表示「1 小时 30 分钟」与逐项明细。支持的格式包括:1h 30min、1 hour 30 minutes、2天3小时、500ms、1.5h、1w 2d 等。中英文可混用,空格可选,支持小数与负数。多个片段自动累加。
如何把毫秒数格式化为人类可读的「1 天 2 小时」?
使用本工具的「毫秒转人类可读」模块,输入毫秒数(如 90610000),即可输出「1 天 1 小时 10 分钟 10 秒」。可调节最大片段数(2/3/4/全部),避免「1 年 0 月 0 周 1 天」这种冗长表示。算法从最大单位(年)开始贪心匹配,依次扣除,数值向下取整。适用于日志时间差、缓存 TTL、超时配置的可读化展示。
缓存 TTL 与超时配置中常用的时间单位换算
缓存与超时配置常见场景:① Redis EXPIRE key 3600(秒)= 1 小时 = 3,600,000 毫秒;② HTTP Cache-Control: max-age=86400(秒)= 1 天;③ JWT exp 声明通常用秒级 Unix 时间戳,token 有效期 30 分钟 = 1,800 秒;④ Kubernetes livenessProbe.timeoutSeconds(秒)与 terminationGracePeriodSeconds(秒);⑤ React Query staleTime 与 cacheTime(毫秒)。本工具可快速在这些单位间换算。
HTTP Cache-Control / Retry-After 等场景下的时间单位
HTTP 协议中时间单位约定:① Cache-Control: max-age=N 与 s-maxage=N 的 N 为秒;② Retry-After 可为秒数或 HTTP 日期;③ Expires 为 HTTP 日期;④ Set-Cookie: Max-Age=N 为秒;⑤ Age: 头为秒。本工具可快速把这些秒数换算为人类可读表示,便于排查缓存策略。例如 max-age=86400 = 1 天,max-age=604800 = 1 周。
JavaScript / Python / Go 中如何表示 duration?
各语言 duration 表示差异较大:① JavaScript 原生 Date.now() 返回毫秒,setTimeout(fn, 1000) 第二参数为毫秒,无内置 duration 类型(Intl.DurationFormat 提案中);② Python datetime.timedelta 内部存天/秒/微秒,timedelta(seconds=90) = 1 分 30 秒;③ Go time.Duration 是 int64 纳秒,字面量如 30 * time.Second,time.ParseDuration("1h30m") 支持 Go 风格字符串;④ Java java.time.Duration 基于 ISO 8601(如 PT1H30M);⑤ Rust std::time::Duration 是纳秒。本工具的「时长解析」采用中英文混合语法,比 Go/Java 字面量更直观。
为什么不用 30 天作为 1 个月的换算基准?
部分工具与文档(如 AWS、部分云厂商计费)约定「1 个月 = 30 天」便于简化计算,但这是商业约定而非历法事实。本工具选择 30.436875 天(Gregorian 平均值)的原因:① 与 ISO 8601、Java Duration、Python timedelta 等主流库的换算系数一致;② 长期统计下误差更小(30 天会每年累积 5.2425 天偏差);③ 适合需要精确换算系数的场景(如年化利率、月均流量)。若你接受 30 天约定,可在单位换算模块手动输入「30 天」查看对应毫秒数。
时长解析支持哪些输入格式?
支持丰富的输入格式:① 英文缩写:1h 30min、2d、500ms、1.5y;② 英文全称:1 hour 30 minutes、2 days;③ 中文:1小时30分、2天3小时、1周、3.5年;④ 混合:1h 30分钟、2天 3h;⑤ 无空格:1h30min、2天3小时;⑥ 纯数字:按秒解释(可配置);⑦ 负数:-1h;⑧ 多片段累加:1d 2h 30min。未识别片段会在「部分片段未识别」中提示。
本工具与 Unix 时间戳转换工具有何区别?
两者侧重点不同:① 本工具处理「时长」概念——一段时间有多长,如「1 小时 30 分 = 5400000 毫秒」,是相对量;② Unix 时间戳转换工具处理「时刻」概念——某个具体瞬间,如「1720000000 对应 2024-07-03 14:26:40 UTC」,是绝对值。两者常配合使用:从时间戳 A 减去时间戳 B 得到时长差(毫秒),再用本工具格式化为「3 天 4 小时」人类可读表示。本工具的「毫秒转人类可读」模块正是为此场景设计。
数据是否安全?会上传到服务器吗?
完全安全。本工具所有单位换算、时长解析、人类可读格式化均在浏览器本地完成,不会上传任何输入数据到服务器。没有后端、没有数据库、没有统计脚本。你输入的数值与时长字符串仅在你的设备内处理,适合处理敏感的超时配置、缓存策略等场景。