时间戳转换器 - 秒/毫秒自动识别、时区和日期转换

时间戳转换器

转换结果:
时间戳(秒)
--
时间戳(毫秒)
--
ISO 9075
--
ISO 8601
--
ISO 9075 (Basisformat)
--
JS date string
--
UTC时间
--

工具说明

这个工具适合做什么

时间戳转换器可以把秒级时间戳、毫秒时间戳、ISO 8601、ISO 9075、本地时间字符串和 UTC 时间之间相互转换。它会优先根据输入长度和日期格式自动识别类型,适合接口联调、日志排查、数据库检查和跨语言开发场景。

本页的格式标签采用常见的 ISO 8601 和 ISO 9075 命名,但本地时间的显示结果仍然会受到当前运行环境时区的影响。

秒级和毫秒级时间戳怎么判断

常见长度单位示例排查重点
10 位1704067200多数 Unix timestamp 和后端日志使用秒,需要乘以 1000 才能交给 JavaScript Date。
13 位毫秒1704067200000JavaScript Date.now() 常见输出,误按秒处理会得到很远的未来日期。
16 位微秒1704067200000000部分数据库或链路追踪系统使用,需要除以 1000 才接近毫秒。
19 位纳秒1704067200000000000Go、Rust、监控系统中可能出现,通常需要按目标系统缩放。

如果一个时间值转换后落在 1970 年附近或非常遥远的未来,优先检查是否把秒和毫秒混用了。

如果遇到 16 位微秒或 19 位纳秒时间戳,请先换算成秒或毫秒后再粘贴到转换器中。

UTC、本地时间和 ISO 格式对照

格式示例适合场景
Unix 秒1704067200后端接口、命令行、数据库数字字段。
Unix 毫秒1704067200000浏览器 JavaScript、前端埋点、Date.now()。
ISO 8601 UTC2024-01-01T00:00:00.000Z跨时区传输和日志对齐,Z 表示 UTC。
本地时间2024-01-01 08:00:00面向用户展示,结果取决于当前设备时区。
  • 接口传输建议使用 Unix 时间戳或带时区的 ISO 8601 字符串。
  • 日志排查时先统一到 UTC,再比较前端、本地和服务器显示。
  • 数据库字段如果没有记录时区,需要确认业务默认时区。

常见使用场景

  • 确认后端返回的是秒级还是毫秒级时间戳。
  • 把接口日志中的时间值还原为可读日期时间。
  • 检查前后端之间是否存在时区偏差。
  • 快速复制 ISO 8601、UTC 或本地格式到测试脚本和数据库语句中。

使用步骤

  1. 输入时间戳或日期字符串,工具会自动识别格式。
  2. 查看秒级、毫秒级、ISO 和 UTC 等多种结果。
  3. 如果需要交给其他系统,可直接复制对应输出。

示例

          输入: 2024-01-01T00:00:00Z
时间戳(秒): 1704067200
时间戳(毫秒): 1704067200000
        

这类对照最适合排查“秒和毫秒混用”造成的接口异常。

代码示例

为了避免本地时区造成示例结果不一致,下面统一使用明确的 UTC 输入:

          // JavaScript
Math.floor(Date.parse("2024-01-01T00:00:00Z") / 1000); // 1704067200
new Date(1704067200 * 1000).toISOString(); // 2024-01-01T00:00:00.000Z
Date.now(); // 当前毫秒级时间戳
        
          # Python
from datetime import datetime, timezone

datetime.fromisoformat("2024-01-01T00:00:00+00:00").timestamp()  # 1704067200.0
datetime.fromtimestamp(1704067200, tz=timezone.utc).isoformat()  # 2024-01-01T00:00:00+00:00
int(datetime.now(timezone.utc).timestamp() * 1000)  # 当前毫秒级时间戳
        
          <?php
strtotime("2024-01-01T00:00:00Z"); // 1704067200
gmdate("c", 1704067200); // 2024-01-01T00:00:00+00:00
        

常见问题

10 位和 13 位时间戳有什么区别?

10 位通常表示秒级 Unix 时间戳,13 位通常表示毫秒级时间戳。很多接口出错就是因为把毫秒值按秒解释,或者反过来把秒值当成毫秒值。

为什么同一个时间在不同系统里显示不一样?

最常见原因是时区不同。一个 UTC 时间在本地环境里可能会显示为本地时区时间,因此排查问题时要先确认双方使用的是 UTC 还是本地时间。

时间戳本身包含时区吗?

不包含。Unix 时间戳表示从 1970-01-01 00:00:00 UTC 开始经过的时间,显示成本地日期时才会套用当前系统或业务指定的时区。

输入普通日期字符串时为什么会无效?

如果日期格式过于模糊、拼写错误,或缺少必要分隔符,解析就可能失败。优先使用标准格式,例如 ISO 8601,会更稳定。

空输入时为什么会直接显示当前时间?

这是为了方便快速查看当前时间对应的多种输出格式,适合调试时临时复制当前时间戳或标准时间字符串。

为什么 1704067200 在 JavaScript 里显示成 1970 年?

JavaScript Date 构造函数默认接收毫秒。如果把 10 位秒级时间戳直接传入,就会被当成 1970 年后的 17 亿毫秒。应先乘以 1000。

相关工具

  • JSON格式化:在线JSON格式化、在线编辑JSON、JSON语法检查
  • URL编码/解码:对Url中特殊的字符进行在线编码与在线解码