时间戳转换器:理解和转换 Unix 时间戳

· 12分钟阅读

目录

理解 Unix 时间戳

您是否想过计算机如何在不同时区、操作系统和编程语言中如此有效地跟踪时间?它们使用一种叫做 Unix 时间戳的东西,理解它是软件开发中处理日期和时间的基础。

可以把 Unix 时间戳想象成一个通用秒表,它从1970年1月1日午夜 UTC(协调世界时)开始计时。这个特定时刻被称为"Unix 纪元"或"POSIX 时间"。从那一刻起,每一秒都被连续计数,创建了任何时间点的简单数字表示。

当您看到像 1711843200 这样的 Unix 时间戳时,您看到的是自 Unix 纪元以来经过的秒数。这个特定的时间戳代表2024年3月31日午夜 UTC。这个系统的美妙之处在于它的简单性——不需要分别处理月、日、年、小时、分钟和时区,您只需要一个数字就能表示一个确切的时间点。

快速提示:Unix 时间戳始终使用 UTC。当您将它们转换为人类可读的日期时,如果想显示本地时间而不是 UTC,需要考虑您的本地时区。

Unix 时间戳系统已成为计算机中时间表示的事实标准。您会在各处找到它——数据库、API、日志文件、文件系统和无数应用程序中。它的普遍采用意味着在东京服务器上生成的时间戳将被纽约或伦敦的系统以相同方式解释。

为什么使用时间戳转换器?

说实话:看到像 1633029600 这样的数字并不能立即告诉您任何有用的信息。是昨天?去年?下个月?如果不将其转换为人类可读的格式,Unix 时间戳对人类来说基本上毫无意义,尽管它们对计算机来说是完美的。

这就是时间戳转换器成为不可或缺工具的原因。它们在机器可读的时间表示和人类实际能够理解和使用的格式之间架起了桥梁。当您将 1633029600 输入转换器时,您会立即得到 2021-10-01 00:00:00 UTC——现在这是您可以使用的东西!

🛠️ 亲自试试

Unix 时间戳转换器 - 日期到纪元 →

以下是开发人员和系统管理员依赖时间戳转换器的主要原因:

时间戳转换器还可以双向工作。您可以将 Unix 时间戳转换为可读日期,或者将特定日期和时间转换回 Unix 时间戳。当您需要构建查询、设置计划任务或在代码中使用基于时间的条件时,这种灵活性至关重要。

常见时间戳格式说明

虽然 Unix 时间戳非常流行,但它们并不是您会遇到的唯一时间表示格式。了解不同的格式可以帮助您为特定需求选择正确的工具,并避免在不同系统之间工作时产生混淆。

格式 示例 描述 常见用例
Unix 时间戳(秒) 1711843200 自1970年1月1日 UTC 以来的秒数 大多数编程语言、数据库、API
Unix 时间戳(毫秒) 1711843200000 自1970年1月1日 UTC 以来的毫秒数 JavaScript、Java、高精度计时
ISO 8601 2024-03-31T00:00:00Z 国际标准日期/时间格式 JSON API、XML、Web 服务
RFC 2822 Sun, 31 Mar 2024 00:00:00 +0000 电子邮件和 HTTP 头格式 电子邮件系统、HTTP 头
人类可读 2024年3月31日 上午12:00 本地化、用户友好的格式 用户界面、报告、文档

Unix 时间戳以秒为单位和以毫秒为单位的关键区别在于精度。JavaScript 的 Date.now() 返回毫秒,这就是为什么 JavaScript 时间戳通常是13位数字而不是10位。在处理来自不同来源的时间戳时,始终验证您处理的是秒还是毫秒,以避免1000倍的错误。

专业提示:您可以通过计算数字位数快速识别时间戳是以秒还是毫秒为单位。10位数字是秒,而13位数字是毫秒。例如,1711843200(10位数字)是秒,而 1711843200000(13位数字)是毫秒。

如何手动转换 Unix 时间戳

虽然在线转换器和编程库使时间戳转换变得轻松,但了解手动转换过程可以让您更深入地了解时间戳的工作原理。此外,当您需要进行快速心算或无法访问工具时,这是有用的知识。

将 Unix 时间戳转换为日期

手动转换过程涉及将时间戳分解为其组成部分:年、月、日、小时、分钟和秒。以下是分步方法:

  1. 从您的时间戳开始:让我们使用 1711843200 作为示例。
  2. 计算天数:除以86,400(一天中的秒数):1711843200 ÷ 86400 = 19,812天
  3. 计算年数:将天数除以365.25(考虑闰年):19,812 ÷ 365.25 ≈ 54.24年
  4. 加到纪元:1970 + 54 = 2024
  5. 计算剩余天数:遍历月份以找到确切日期

如您所见,手动转换很快变得复杂,特别是在考虑闰年、不同月份长度和时区时。这正是自动化工具存在的原因!

将日期转换为 Unix 时间戳

反向转换——从日期到 Unix 时间戳——遵循类似但相反的过程:

  1. 计算自纪元以来的年数:从您的年份中减去1970
  2. 考虑闰年:为1970年和目标年份之间的闰年添加额外天数
  3. 添加完整月份的天数:汇总目标月份之前每个月的天数
  4. 添加剩余天数:添加月份中的日期
  5. 转换为秒:将总天数乘以86,400
  6. 添加时间组件:添加小时 × 3600、分钟 × 60 和秒

对于2024年3月31日午夜 UTC,此计算将给您 1711843200

快速提示:当进行