Back to Blog
Team Tools
TimestampUnixTimeProgramming

Unix 时间戳的坑:秒 vs 毫秒,90% 的开发者都踩过

时间戳单位搞错是开发中最常见的 Bug 来源之一。本文解释 Unix 时间戳秒和毫秒的区别,以及如何在不同语言中正确处理。

为什么时间戳单位容易出错?

Unix 时间戳的定义是从 1970-01-01 00:00:00 UTC 到现在的秒数。但很多编程语言返回的是毫秒。如果搞混单位,就会出现日期显示为 1970 年或 50000 年的经典 Bug。

各语言的默认行为

  • JavaScript:Date.now() 返回毫秒(13 位)
  • Python:time.time() 返回秒(浮点数)
  • Java:System.currentTimeMillis() 返回毫秒
  • Go:time.Now().Unix() 返回秒

如何判断秒还是毫秒?

10 位数字是秒,13 位数字是毫秒。2026 年秒级时间戳约为 17.7 亿(10 位)。

常见 Bug 场景

  • 前端传毫秒给后端,后端期望秒,日期变成 50000+ 年
  • 后端返回秒,前端期望毫秒,日期显示 1970 年
  • JWT 的 exp 字段要求秒,但传入了毫秒,Token 立即过期

在线转换

使用我们的 时间戳在线转换工具 自动识别秒和毫秒并快速互转。

Try it yourself:

Open Related Tool