当前 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 返回秒。比较或存储前请确认单位。
More posts
什么是 UTC 时间?含义、偏移与转换详解Unix 时间转日期:把 Unix 时间戳转换为可读时间纪元时间戳详解:Unix 时间、POSIX 时间与自 1970 年起的秒epoch 转换器指南:转换纪元时间、Unix 时间和时间戳日期转 epoch:把时间转换为 Unix 时间戳或纪元时间epoch 毫秒转日期:转换 13 位时间戳和 long 值2026 年初的 Unix 时间戳:1767225600 详解JavaScript Date.now():获取与转换 Unix 时间戳毫秒 vs 秒:让每个应用都崩溃的单位混淆在数据库中存储时间戳:DATETIME vs INT vs BIGINT无需库的 JavaScript 时区正确日期格式化每个开发者都发布过的 7 个 Unix 时间戳 bug纪元时间详解:Unix 时间戳零是什么?