← 返回工具箱
🕰️ 时间戳转换
当前 Unix 时间戳
-
-
时间戳 → 日期时间
日期时间 → 时间戳

📖 Unix时间戳详解

Unix时间戳(Unix Timestamp)是指从UTC时间1970年1月1日0时0分0秒(称为"Unix纪元"或"Epoch")起至现在经过的总秒数。这个标准由Unix操作系统首先采用,目前已成为大多数编程语言和操作系统的时间表示基础。

Unix纪元的历史

1970年1月1日被选为Unix纪元的起点,是因为Unix系统最初在1960年代末开发,而1970年1月1日是一个便于计算的整数时间点。当时的计算机资源有限,用一个整数来表示时间既简洁又高效。

秒级时间戳与毫秒级时间戳

类型长度单位示例常用于
秒级时间戳10位数字1700000000Unix/Linux、PHP、Python
毫秒级时间戳13位数字毫秒1700000000000JavaScript、Java

值得记住的时间戳

时间戳对应时间(UTC)说明
01970-01-01 00:00:00Unix纪元起点
10000000002001-09-09 01:46:4010亿秒纪念时刻
12345678902009-02-13 23:31:30著名的递增数字时间戳
21474836472038-01-19 03:14:0732位有符号整数最大值(Y2K38问题)

Y2K38问题

Y2K38问题(又称"2038年问题"或"Unix千年虫")是指使用32位有符号整数存储Unix时间戳的系统,在2038年1月19日03:14:07 UTC后将发生整数溢出,导致时间回滚到1901年12月13日。

32位有符号整数最大值:2^31 - 1 = 2,147,483,647
对应时间:2038-01-19 03:14:07 UTC

溢出后变为:-2,147,483,648
对应时间:1901-12-13 20:45:52 UTC

解决方案:使用64位整数存储时间戳
64位最大值可表示到约2920亿年后

时区注意事项

概念说明
UTC协调世界时,全球统一的时间标准
GMT格林尼治标准时间,与UTC基本等同
CST(中国)中国标准时间,UTC+8
时间戳与时区Unix时间戳本身不含时区信息,它总是基于UTC的
💡 小贴士:在处理时间戳时,务必注意区分秒级(10位)和毫秒级(13位)。JavaScript的 Date.now() 返回毫秒级时间戳,而大多数后端语言(如PHP的 time()、Python的 time.time())返回秒级时间戳。转换时需要相应地乘以或除以1000。