首页/ 新闻中心/ 正文

时间戳为什么从1970年开始数?顺带聊聊2038年问题

作者:袭人 阅读 6 新闻中心
时间戳为什么从1970年开始数?顺带聊聊2038年问题

第一次看服务器日志,满屏都是 1793239200 这种十位数密码一样的数字。同事说那是时间戳——所有日志、数据库、订单系统,底层都拿它存时间。

但我更好奇的是:为什么全世界的程序,都约定从 1970 年 1 月 1 日 0 点开始数?

时间戳是什么

说人话:从 1970 年 1 月 1 日 0 点 0 分 0 秒(UTC)开始,往后数了多少秒。比如 1793239200,对应的就是北京时间 2026 年 10 月 29 日上午 10 点整。纯数字,排序、比较、跨时区都省事,所以系统底层都爱用它。

为什么偏偏是 1970 年

没什么深奥的原因。Unix 系统那几年刚诞生,工程师随手选了个离自己近的整数年份当起点。当年谁也没想到这套约定会跑半个多世纪、装进几十亿台设备。这就是路径依赖——一个随性的选择,被全世界沿用到今天。

顺带说个 2038 年问题

老式 32 位系统里,时间戳最多存到 2147483647 秒——换算一下是 2038 年 1 月 19 日。再多数一秒就会溢出,系统时间直接滚回 1901 年。听着像段子,但 2010 年前后确实有一批老旧系统栽在这上面过。如今主流系统都换成了 64 位,上限被推到 2922 亿年以后,咱们这辈人是不用担心了。

手头碰巧有一串数字想确认时间?打开 时间戳转换工具,输进去就出结果。

timestamp-to-date-guide

相关工具 时间戳转换 Unix 时间戳与日期时间双向转换 免费在线使用 →
分享本文 ⧉ W 🔗