什么是 Unix Epoch 机制?
Unix 时间戳(Unix Timestamp / Unix Epoch)定义为从协调世界时(UTC)1970年1月1日00:00:00起至现在的总秒数,不考虑闰秒。这是一种在计算机系统中广泛使用的表示时间的方式,便于进行时间的排序和跨时区的计算。
各主流编程语言获取时间戳的方法
以下是不同编程语言中获取当前 Unix 时间戳(秒级)的常用语句:
- JavaScript:
Math.floor(Date.now() / 1000) - Python:
import time; int(time.time()) - Go:
time.Now().Unix() - Java:
System.currentTimeMillis() / 1000L - PHP:
time() - Shell:
date +%s
32 位时间戳的“2038年问题”
在使用 32 位有符号整数来存储时间戳的系统上,其最大可表示的时间值为 2,147,483,647,对应 UTC 时间 2038年1月19日03:14:07。超过此时间后,数值会溢出并变成负数,导致系统时间倒退回1901年。当前的现代系统(包括 64 位操作系统及绝大多数新数据库)均已通过 64 位整型彻底解决了此问题。