Unix时间戳
Unix 时间戳是编程和数据库里最通用的时间表示方式,它用一个整数记录「从 1970 年 1 月 1 日 00:00:00 UTC 到某一刻一共过了多少秒」。这个起点被称为「Unix 纪元」(Epoch),之后每过一秒数字加一,比如 1700000000 对应的就是 2023 年 11 月中旬的某个时刻。
它的最大好处是简单又没歧义:全世界统一以 UTC 为基准,一个纯数字就能唯一定位一个时间点,不受时区、日期格式、语言的干扰,计算机之间传递、比大小、算时间差都特别方便。要显示给人看时,程序再根据本地时区把它换算成年月日时分秒。
常见的有两种精度:秒级(10 位数字)和毫秒级(13 位数字),JavaScript 默认用毫秒,很多后端和数据库用秒,混用时容易差 1000 倍,转换时先看清位数。另外它和北京时间差 8 小时,因为北京是 UTC+8,把时间戳转成本地时间时会自动加上这 8 小时。
常见问题
Unix 时间戳从什么时候开始算?
从 1970 年 1 月 1 日 00:00:00 UTC 起算,这一刻叫 Unix 纪元。之后每过一秒数字加一,所以时间戳就是距这个起点的秒数。
10 位和 13 位时间戳有啥区别?
10 位是秒级,13 位是毫秒级,两者差 1000 倍。JavaScript 默认毫秒,很多后端用秒,混用前先数位数,别算错。
时间戳和北京时间差几小时?
时间戳本身以 UTC 为准,转北京时间要加 8 小时,因为北京在 UTC+8 时区。同一个时间戳在不同时区显示的钟点不同,但那个数字是全球统一的。
为什么程序都爱用时间戳?
它是个纯数字,无时区无格式歧义,全球统一。存储、传输、比较先后、算时间差都比年月日字符串省事,要给人看时再转成日期即可。