什么是 Unix 时间戳?
Unix 时间戳是计算中表示时间的基本方式。了解它们如何工作以及为什么它们如此有用。
Unix 时间戳基础知识
Unix 时间戳是自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数。 示例: - 时间戳 0 = 1970 年 1 月 1 日 00:00:00 UTC - 时间戳 1640000000 = 2021 年 12 月 20 日 13:33:20 UTC - 时间戳 1700000000 = 2023 年 11 月 14 日 22:13:20 UTC 为什么从 1970 年?Unix 操作系统是在 1969-1970 年开发的,开发者选择了 1970 年 1 月 1 日作为"零时"。这个约定在整个计算行业中坚持下来。
为什么使用时间戳
时间戳提供了几个优势: 时区独立:时间戳 1640000000 在所有时区中表示相同的瞬间。仅本地显示更改。 简单算术:两个日期之间的差异?减去时间戳。添加 7 天?添加 7 * 24 * 60 * 60 秒。 紧凑存储:整数比字符串更小、更快。 易于比较:哪个日期更早?比较整数。 这种简单性使时间戳对于数据库、API 和分布式系统来说是理想的。
秒 vs 毫秒
Unix 时间戳是秒,但有些系统使用毫秒: 秒(标准):1640000000(10 位数字) 毫秒(JavaScript):1640000000000(13 位数字,秒 * 1000) 混淆这些会导致日期偏离 50 年!始终检查您的系统使用哪个。 JavaScript:Date.now() 返回毫秒。除以 1000 用于 Unix 时间戳。 Python:time.time() 返回秒(带小数)。 大多数数据库:秒。
2038 年问题
32 位有符号整数时间戳在 2038 年 1 月 19 日 03:14:07 UTC 溢出。时间戳变为负数,回绕到 1901 年。 解决方案:使用 64 位时间戳。它们可以表示从约 2920 亿年前到 2920 亿年未来的日期。 现代系统使用 64 位,但遗留系统可能仍然使用 32 位。在 2038 年之前审计和迁移。
试用工具
时间戳转换器