本文目录
什么是 Unix 时间戳?
Unix 时间戳(也称纪元时间)是指自 1970 年 1 月 1 日 00:00:00 UTC 起所经过的秒数。它是计算机系统中最常用的时间表示方法,因为它与时区无关、以单个整数存储,并且便于进行算术运算。
几乎每一种编程语言和数据库都在使用 Unix 时间戳。JavaScript 使用毫秒(除以 1000 即得秒),而大多数其他语言使用秒。2038 年问题涉及 32 位系统——当时间戳超过 2^31 时,这些系统将发生溢出。
时间戳转换的工作原理
该转换器可在 Unix 时间戳与人类可读的日期之间进行双向转换。
- 纪元转日期——将 Unix 时间戳转换为格式化的日期和时间字符串
- 日期转纪元——将日期/时间字符串转换为对应的 Unix 时间戳
- 时区支持——同时以 UTC 和本地时区显示转换后的时间
免费试用 —— 无需注册
转换时间戳 →何时使用时间戳转换
当你处理 API、数据库或日志中以数字形式存储的日期时,时间戳转换非常有用。
- API 调试——将 API 响应中的 Unix 时间戳转换为可读日期以便检查
- 日志分析——解读日志文件和数据库记录中的时间戳字段
- 调度排期——验证代码中的日期计算是否产生了正确的 Unix 时间戳值
常见问题
以秒为单位和以毫秒为单位的 Unix 时间戳有什么区别?
大多数 Unix 系统使用秒。而 JavaScript 的 Date.now() 返回毫秒。如果某个时间戳看起来大了约 1000 倍(例如 1708600000000 而非 1708600000),那它就是以毫秒为单位的。当你在需要秒的场景中处理 JavaScript 时间戳时,务必检查其数量级,并在必要时除以 1000。
什么是 2038 年问题?
在 2038 年 1 月 19 日,用于存储 Unix 时间戳的 32 位有符号整数将发生溢出,回绕为一个表示 1901 年的负值。仍在使用 32 位时间戳的系统将会出错。现代系统使用 64 位整数,在数十亿年内都不会溢出。
Unix 时间戳会受夏令时影响吗?
不会。无论是否处于夏令时,Unix 时间戳始终表示自纪元起在 UTC 下所经过的秒数。夏令时调整仅在转换为本地时间显示时才会生效。这正是以 Unix 时间戳存储时间的关键优势之一。