日期转时间戳
日期 → Unix时间戳 / 多时区 / 批量转换
日期转时间戳
批量日期转时间戳
什么是日期转时间戳
日期转时间戳是将人类可读的日期时间(如 2024-01-15 12:30:00)转换为 Unix 时间戳(从 1970-01-01 00:00:00 UTC 算起的秒数或毫秒数)。在程序开发、数据交换、日志记录等场景中,日期通常需要先转为时间戳格式。本工具同时输出秒级和毫秒级结果,支持 40+ 时区,确保时区转换准确无误。
日期转时间戳怎么算?计算原理
手算分三步:第一步,把输入的日期时间换算成 UTC 时间——用本地时间减去时区偏移(北京时间是 UTC+8,即减去 8 小时);第二步,计算该 UTC 时刻距离 1970-01-01 00:00:00 UTC 经过的总秒数(跨闰年时按 366 天计);第三步,得到 10 位秒级时间戳,乘以 1000 即为 13 位毫秒级。
完整算例:北京时间 2026-01-01 00:00:00 → 第一步换算为 UTC 是 2025-12-31 16:00:00;第二步计算 1970-01-01 00:00:00 至 2025-12-31 16:00:00 共 20453 天 16 小时(1970 至 2025 共 56 年,其中 14 个闰年:1972、1976、1980、1984、1988、1992、1996、2000、2004、2008、2012、2016、2020、2024,56 × 365 + 14 = 20454 天,到 2025-12-31 00:00 为 20453 天),合计 20453 × 86400 + 16 × 3600 = 1767196800 秒,即秒级时间戳,毫秒级为 1767196800000。日常开发无需手算,直接使用本页工具或各语言的日期 API 即可。
2038 年问题与时间戳上限
32 位系统的时间戳上限是 2147483647,对应 2038-01-19 03:14:07 UTC,超过此值会发生溢出(即"2038 年问题")。现代 64 位系统与 JavaScript(双精度浮点)均不受此限制,本工具可正常转换 2038 年之后的日期。更多 2038 年问题的详细说明见时间戳转换工具页。
常见日期与时间戳对照表
以下为常用日期对应的秒级时间戳(按北京时间零点计算),可直接在上方工具中输入左列日期验证:
| 日期(北京时间) | 秒级时间戳 | 说明 |
|---|---|---|
| 1970-01-01 08:00:00 | 0 | Unix 纪元(北京时间的纪元零点) |
| 2000-01-01 00:00:00 | 946656000 | 千禧年 |
| 2026-01-01 00:00:00 | 1767196800 | 2026 年元旦 |
| 2027-01-01 00:00:00 | 1798732800 | 2027 年元旦 |
| 2028-01-01 00:00:00 | 1830268800 | 2028 年元旦 |
| 2038-01-19 11:14:07 | 2147483647 | 32 位系统时间戳上限 |
如何使用日期转时间戳
页面顶部实时显示当前时间戳(每秒刷新,点击即可复制),无需任何操作。输入标准日期格式(如 2026-08-20 18:30:00),也可使用日期时间选择器可视化选择。选择对应时区后,结果区自动显示秒级和毫秒级时间戳及对应星期,点击复制按钮即可一键拷贝;结果区下方提供"现在 / 今天零点 / 明天零点"常用时间戳快捷复制。批量模式下每行输入一个日期,可一次性转换多个日期,适用于批量处理日志或数据库记录。如需反向转换请使用时间戳转日期工具。
日期转时间戳常见问题
支持哪些日期格式输入?
支持常见格式如 2024-01-15 12:30:00、2024/01/15 12:30:00、2024-1-15 12:30 等。页面提供日期时间选择器可视化选日期,也可直接手动输入后自动识别,无需严格按固定格式。
转换结果返回秒级还是毫秒级时间戳?
同时返回两种。结果区域分别显示秒级时间戳(10位数字,如 1705293000)和毫秒级时间戳(13位数字,如 1705293000000),可根据开发需求选择复制对应值。
不同时区转换结果会不同吗?
会。同一时刻在不同时区对应不同的时间戳,因为时间戳是 UTC 零时区的秒数。输入北京时间选择"Asia/Shanghai"时区将得到正确的北京时间对应的时间戳。工具支持 40+ 时区切换。
日期转时间戳和时间戳转日期有什么区别?
两者互为逆操作:日期转时间戳是将人类可读的日期时间转为机器可读的数值,常用于 API 请求参数或数据库写入;时间戳转日期是将数值还原为可读时间,常用于日志排查和调试。本工具的对应页面为时间戳转日期工具。
日期转时间戳工具安全吗?数据会泄露吗?
安全,所有转换在浏览器本地完成,不依赖任何后端服务,输入的日期数据不会上传到服务器。批量转换同样仅在前端处理。
怎么用代码获取当前时间戳?
常见写法:JavaScript 用 Math.floor(Date.now() / 1000) 得到秒级(Date.now() 本身是毫秒级);Java 用 System.currentTimeMillis() / 1000;Python 用 int(time.time());Go 用 time.Now().Unix();MySQL 用 SELECT unix_timestamp(now())。更多语言的完整代码示例可查看时间戳转换工具的代码示例区,其中还包含时间戳转回日期的写法。
为什么时间戳从 1970 年开始算?
Unix 操作系统的设计者在 1970 年代初选取 1970-01-01 00:00:00 UTC 作为纪元起点(Epoch),因为当时正处于 Unix 系统的开发初期,取一个"整点"便于计算。这一约定随后被 POSIX 标准采纳,成为整个行业的事实标准,所以所有 Unix 时间戳都从 1970 年 1 月 1 日开始累计。
Unix 时间戳会用尽吗?
会,但对日常使用没有影响。32 位系统的时间戳最大值为 2147483647(对应 2038-01-19 03:14:07 UTC),到时会溢出,这就是"2038 年问题"。现代系统普遍采用 64 位时间戳,可以表示到 2900 亿年之后,远超实际需要。JavaScript 使用双精度浮点数表示时间,同样不受 32 位限制。