时间戳转换
Unix时间戳与北京时间互转,程序员与运维必备
Unix时间戳与北京时间互转,程序员与运维必备
Unix时间戳是从1970年1月1日00:00:00 UTC开始到某个时间点所经过的秒数(或毫秒数)。它是一种与时区无关的纯数字表示方式,广泛用于计算机系统、数据库、API接口等。
示例:时间戳 1717142400 对应 UTC 时间 2024-05-31 04:00:00,转为北京时间(+8小时)后为 2024-05-31 12:00:00。
System.currentTimeMillis()/1000Date.now() 输出,精度更高判断技巧:数数位数。10位是秒,13位是毫秒,16位是微秒。
其他语言示例请切换至英文版查看。
32位系统存储秒级时间戳的最大值是 2,147,483,647,对应2038年1月19日 03:14:07 UTC。超过这个时间会溢出。现代64位系统已彻底解决此问题。
时间戳是UTC时间,转换为本地时间时需要加上时区偏移。北京时间(UTC+8)会比UTC多8小时。若结果少了8小时,可能是以UTC格式显示的。
JavaScript内建使用毫秒级精度。若需要秒级,可除以1000并取整:Math.floor(Date.now() / 1000)。反过来传递给Date对象时也要乘回1000。
ISO 8601是国际标准化组织规定的时间表示法,各编程语言和系统通用。其形式如 2024-05-31T12:00:00.000+08:00,末尾的+08:00表示东八区。
Unix timestamp to local time, essential for developers
A Unix timestamp is the number of seconds (or milliseconds) since January 1, 1970, 00:00:00 UTC. It is a timezone-independent way to represent a point in time.
32‑bit timestamps overflow in 2038. 64‑bit systems resolve this.
Timestamps are UTC. Convert to your local timezone by adding the offset. China uses UTC+8.
JavaScript uses millisecond precision. Divide by 1000 for seconds.