什么是 Unix 时间戳?为什么要从 1970 年开始?
Unix 时间戳(Unix Timestamp / Epoch Time)是一个整数,表示从 1970 年 1 月 1 日 00:00:00 UTC 至今所经过的秒数(或毫秒数)。它是计算机系统存储和传递时间的通用标准——你在数据库字段、REST API 响应、日志文件、JWT Token(iat/exp)、Redis 过期时间里随处可见它的身影。
1970 年被选为起点,是因为 Unix 操作系统正是在那个年代诞生的,开发者将其定为「计算机纪元」(Epoch)的起始日。时间戳的核心优势在于:它是与时区无关的绝对时间,全球任何地方在同一时刻的时间戳数值完全相同,因此非常适合跨系统、跨时区的时间存储与比较,也不受夏令时影响。
当前时间戳(2026 年 6 月)大约是 1780000000 秒左右。面对这串数字,人类几乎无法直接读出它对应的日期,这正是时间戳转换工具的价值所在。
秒级 vs 毫秒级:如何快速判断时间戳精度
Unix 时间戳有两种常见精度,掌握位数规律即可一眼判断:
- 秒级(10 位):如
1780713509,精确到秒。Go、Python、PHP 等语言默认返回秒级。 - 毫秒级(13 位):如
1780713509000,精确到毫秒(千分之一秒)。JavaScriptDate.now()、JavaSystem.currentTimeMillis()默认返回毫秒。
MeTool 时间戳转换工具自动识别精度,无需手动切换。各语言获取当前时间戳速查:
- JavaScript:
Date.now()(ms)/Math.floor(Date.now()/1000)(s) - Python:
import time; int(time.time())(s) - Java:
System.currentTimeMillis()(ms) - Go:
time.Now().Unix()(s)/time.Now().UnixMilli()(ms) - PHP:
time()(s)/microtime(true)(s,浮点) - Swift:
NSDate().timeIntervalSince1970(s,浮点)
时间戳转换的 5 个高频使用场景
① 调试 API 响应
后端返回 {"created_at": 1780713509, "expires_at": 1780799909}——这两个时间点分别是什么?粘贴到时间戳转换工具,立刻看到可读日期,快速确认逻辑是否正确。
② 解读 JWT Token 的过期时间
JWT Payload 中的 iat(签发时间)和 exp(过期时间)都是 Unix 秒级时间戳。将 exp 粘贴到转换工具,即可知道 token 何时过期,无需心算。
③ 构造数据库时间范围查询
需要查询昨天 00:00 到今天 00:00 之间的记录?把日期填入「日期→时间戳」,得到对应的秒级时间戳,直接写进 SQL:WHERE created_at BETWEEN 1780627200 AND 1780713600。
④ 分析日志文件中的时间戳
服务器日志、监控告警、Nginx access log 中常见时间戳字段。批量粘贴到本工具的「批量转换」区,一次输出所有可读时间,快速定位问题区间。
⑤ 跨时区的时间换算
北京时间 2026-06-06 18:00 开始的直播,对应纽约时间几点?先把北京时间转成时间戳,再切换时区到 America/New_York,即可得到精确的当地时间。
时间戳与时区:为什么同一个时间戳在不同地方显示不同日期?
Unix 时间戳代表一个全球统一的绝对时刻(UTC)。将其转换为「本地日期时间」时,需要叠加目标时区的偏移量。
以时间戳 0 为例:
- UTC (UTC+0):1970-01-01 00:00:00
- 北京/上海 (UTC+8):1970-01-01 08:00:00
- 纽约 (UTC-5):1969-12-31 19:00:00(注意日期变了!)
- 东京 (UTC+9):1970-01-01 09:00:00
MeTool 支持 40+ 个常用时区,在选择器中输入城市名(如 shanghai、tokyo)或 UTC 偏移(如 +8、-5)即可快速检索。时区不影响时间戳本身的数值,只影响展示格式。
