作者:kaenfsk · 最后复核:2026 年 10 月 12 日 · 数据在浏览器本地处理 · 内容与维护标准

⏰ 时间戳转换

Unix 时间戳与北京时间互转,支持秒级和毫秒级时间戳。

秒级时间戳
-
毫秒级时间戳
-
等待输入...

输入按 UTC+8 解析,输出同时给出秒级和毫秒级结果。

关于时间戳转换

Unix 时间戳(Unix Timestamp)是计算机系统中表示时间的一种标准方式,定义为从 UTC 时间 1970 年 1 月 1 日 00:00:00(也称为 Unix Epoch)开始经过的秒数(10 位)或毫秒数(13 位)。时间戳本身不包含时区信息,是一个绝对值,在任何时区都代表同一个瞬间。

时间戳在编程中广泛使用,因为它是跨语言、跨平台的通用时间表示法。无论是 Python 的 time.time()、JavaScript 的 Date.now()、还是 MySQL 的 UNIX_TIMESTAMP(),都返回时间戳。相比日期字符串,时间戳便于计算和比较,不存在时区解析和格式转换的麻烦。

使用说明

  1. 当前时间戳 — 页面自动显示当前秒级(10 位)和毫秒级(13 位)时间戳,点击「刷新」可获取最新值
  2. 时间戳转日期 — 输入时间戳数字,点击转换即可查看对应的北京时间(UTC+8)
  3. 日期转时间戳 — 输入日期时间字符串,转换为对应的秒级和毫秒级时间戳

常见应用场景

  • API 调试 — 接口返回的时间通常是时间戳格式,转换后可直观确认时间的正确性
  • 数据库查询 — 在 SQL 中以时间戳范围查询数据记录,需要将日期转换为时间戳
  • 日志分析 — 分析系统日志中的时间戳字段,定位特定时间段的异常事件
  • 前后端协作 — 确认前后端使用的时间戳精度一致(秒级还是毫秒级)

常见问题

Q: 秒级和毫秒级时间戳怎么区分?

秒级是 10 位数字(如 1719212345),毫秒级是 13 位数字(如 1719212345000)。本工具会自动根据输入长度判断,无需手动选择。

Q: 时间戳有没有时区问题?

时间戳本身是 UTC 时间,没有时区。转换为可读日期时,本工具默认显示北京时间(UTC+8)。如果服务器在其它时区,转换结果会不同。

⚠️ JavaScript 的 Date.now() 返回毫秒级时间戳(13 位),而 PHP 的 time() 和 Python 的 time.time() 默认返回秒级浮点数(10 位)。开发时要注意精度匹配,否则时间会差 1000 倍。

10 位还是 13 位,先学会判断

Unix 时间戳按单位分为秒级与毫秒级:秒级时间戳通常为 10 位,毫秒级通常为 13 位。2026 年左右的当前时间大约是秒级 17 亿,也就是 10 位;如果看到 13 位数字,通常是毫秒级。判断时也可以看末三位是否长期为 000,但不绝对,最好以接口文档为准。工具支持自动识别,粘贴后直接转换,不需要手动补零或除以 1000。

一个完整转换流程

  1. 从数据库、日志、接口或浏览器控制台取得时间戳
  2. 把时间戳粘贴到输入框,先确认显示的是秒还是毫秒
  3. 查看对应的北京时间,与业务发生时间比对
  4. 需要精确到秒或毫秒时,复制对应格式的结果
  5. 反向操作时输入目标日期,得到时间戳后直接用于代码或 SQL

时区问题的核心

时间戳本身没有时区,它表示从 Unix 纪元到某个时刻经过的秒数。同一时间戳在北京、东京和伦敦显示的时间不同,但代表的物理时刻相同。中国标准时间是 UTC+8,因此使用北京时间显示时,会比 UTC 表示快 8 小时。存储与接口应统一使用 UTC 时间戳,只在用户界面展示时转换成当地时区。

常见应用场景

  • 调试登录令牌:检查过期时间戳是否大于当前时间戳
  • 数据库范围查询:把开始与结束时间转换成时间戳,再执行 SQL
  • 缓存过期:为 Redis、CDN 等配置准确的秒级 TTL
  • 日志分析:将 UTC 时间戳转为北京时间,定位线上问题
  • 前端倒计时:把服务器时间戳与本地时间相减,计算剩余秒数

开发中的最佳实践

  • 接口文档明确所有时间戳字段的单位,推荐秒级或毫秒级二选一
  • 不要在客户端和服务端混用不同精度,避免时间相差 1000 倍
  • 比较时间使用时间戳,展示时间使用格式化日期
  • 存储日期时间时考虑是否需要 1970 年以前的日期,避免负数时间戳被截断

排查时间相关 Bug

发现时间比预期快 8 小时,通常是显示层把 UTC 当成北京时间;发现相差约 1000 倍,通常是秒级与毫秒级混用;发现时间永远是 1970 年附近,通常是取到了 0 值或字段没有正确写入。先统一时间单位,再用本工具把可疑时间戳转换成北京时间核对,通常能快速定位问题环节。

北京时间与时间戳的完整对照

例如北京时间 2026-10-12 15:30:00(UTC+8),对应秒级时间戳 1791790200,毫秒级时间戳 1791790200000。反向转换时,把 1791790200 按秒解析并显示为北京时间,应得到同一个时刻。这正是双向工具的价值:既能从日志找发生时间,也能把已知时间变成可写入接口或 SQL 的参数。

任务输入输出注意点
日志时间定位秒级时间戳北京时间接口与日志可能混用 UTC 和本地时间
数据库查询开始/结束日期秒级边界结束时间边界要按业务采用开区间或闭区间
令牌过期检查exp可读过期时刻同时确认服务器时钟和时区配置
缓存 TTL当前与过期时间相差秒数毫秒需先除以 1000

跨语言测试时固定哪些变量

调用接口或入库前,至少固定四个变量:单位、时区、精度和边界。单位指秒或毫秒;时区指输入是否按 UTC 解析;精度指是否保留毫秒;边界指查询区间是否包含起止时间。用同一组样例分别在公司前端、服务端和数据库执行一次,才能发现“本地看着正确、线上多八小时或少一天”的问题。

常见疑问速答

时间戳 0 代表什么?代表 1970 年 1 月 1 日 00:00:00 UTC,也就是 Unix 纪元。数据库或接口中出现大量 0,通常表示字段没有正确写入。

时间戳有负数吗?有。1970 年以前的时间用负数表示,但部分系统或语言只支持无符号整数,处理历史日期时需要单独测试。

北京时间与 UTC 相差多久?中国标准时间是 UTC+8。把 UTC 时间加上 8 小时就是北京时间,因此数据库里看到的时间比预期慢 8 小时时,通常只是显示时区问题。

怎么确认接口返回的是秒还是毫秒?优先看接口文档;没有文档时,可以把它转换后与当前时间比较,如果结果差约 1000 倍,说明精度不一致。

快速记忆要点

时间戳的三个关键点可以简单记为:10 位看秒,13 位看毫秒;存储用 UTC,展示用本地;比较用数字,阅读用日期。遇到时间相关 Bug 时,先统一精度,再统一时区,最后看数据来源。本工具支持秒级与毫秒级自动识别,也支持北京时间双向转换,适合在联调、排障和生成测试数据时使用。

如果你需要在代码中生成当前时间戳,也可以参考常见写法:JavaScript 的 Date.now() 返回毫秒,除以 1000 并取整得到秒;Python 的 time.time() 返回浮点秒;Java 的 System.currentTimeMillis() 返回毫秒。无论哪种语言,传输与存储前都应明确单位。

除了转换,也可以把当前秒级与毫秒级时间戳作为测试数据保存。生成接口参数、缓存键或日志字段时,直接复制结果即可,避免在代码里临时拼错单位。

📚 相关文章
📋 JSON 入门指南:从零开始理解 JSON 数据格式 → 🔐 Base64 编码完全指南:原理与应用 → ⏰ Unix 时间戳详解:程序员必知的时间知识 →