当前 Unix 时间戳:纪元时钟、UTC 时间与实时 Unix 时间

当前 Unix 时间戳是此刻自 1970-01-01 00:00:00 UTC 以来的秒数。了解纪元时钟如何工作、为什么 UTC 是基准,以及如何在常见语言中获取当前时间戳。

当前 Unix 时间戳的含义

当前 Unix 时间戳是自 1970 年 1 月 1 日 00:00:00 UTC 起经过的整秒数。实时 epoch 时钟每秒递增一次。如果时钟显示毫秒,则每秒递增多次,通常是 13 位的值。

为什么以 UTC 为基准

Unix 时间以 UTC 为基础,使不同时区的计算机能就同一时刻达成一个数值上的一致。本地时间只是显示层。两个用户在同一时刻加载页面时,即使一个看到早晨、另一个看到傍晚,他们也共享相同的当前 Unix 时间戳。

如何获取当前 Unix 时间戳

每种常见语言都有获取当前 Unix 时间的简短方法。

  • JavaScript 毫秒:Date.now()
  • JavaScript 秒:Math.floor(Date.now() / 1000)
  • Linux 秒:date +%s
  • Python 秒:int(time.time())
  • PHP 秒:time()
  • Go 秒:time.Now().Unix()
  • PostgreSQL 秒:EXTRACT(EPOCH FROM now())

当前时间戳 vs 格式化时间

时间戳适合排序、比较、存储和 API 负载。格式化日期适合人阅读。大多数应用存储时间戳或 UTC 日期时间,只有在向用户显示时才进行格式化。

  • 在数据库和日志中存储 UTC 或 Unix 时间戳
  • 以用户所在时区显示本地时间
  • 当人需要检查 API 负载时使用 ISO 8601
  • 当系统需要紧凑的数值时使用 Unix 秒或毫秒

当前 Unix 时间戳常见问题

当前 Unix 时间戳取决于我的时区吗?
不会。时间戳以 UTC 为基准,对同一时刻在全球都相同。
为什么我的当前时间戳是 13 位?
13 位的当前时间戳通常是毫秒。除以 1000 即可得到 Unix 秒。
哪里可以看到实时 Unix epoch 时钟?
转换器首页显示实时 epoch 时钟,并可将该值转换为 UTC 或本地时间。
当前 Unix 时间戳在每种语言中都一样吗?
就时刻而言一样,但单位不一定。JavaScript 的 Date.now() 和 Java 的 System.currentTimeMillis() 返回毫秒,而 Python time.time()、PHP time()、Go Unix() 和 Linux date +%s 返回秒。比较或存储前请确认单位。