无需登录 数据私有 本地保存

Unix时间戳转换工具 - 在线时间戳与日期互转

26
0
0
0
实时更新

UNIX 时间戳

--
秒级时间戳
--
毫秒级时间戳
--
--

时间戳 → 日期时间

支持秒(10位)、毫秒(13位)、微秒(16位)时间戳,支持负数

日期时间 → 时间戳

选择的是本地时间,将转换为对应的时间戳

常用时间戳参考

事件 秒级时间戳 对应日期 (UTC)
Unix 纪元起点 0 1970-01-01 00:00:00
32位溢出(2038问题) 2147483647 2038-01-19 03:14:07
千禧年 2000 946684800 2000-01-01 00:00:00
iPhone 发布 1180638000 2007-06-29 00:00:00(大约)
COVID-19 WHO宣布大流行 1583884800 2020-03-11 00:00:00

常见问题与知识点

Unix 时间戳(Unix Timestamp)是一种时间表示方式,定义为从1970年1月1日00:00:00 UTC(即Unix纪元)开始所经过的秒数(或毫秒数),不考虑闰秒。它是一种在计算机系统中广泛使用的时间存储格式,具有跨平台、跨语言、易于计算的优点。时间戳是一个简单的整数,便于存储、排序和比较。

  • 秒级时间戳:10位数字,精度为1秒。最常见的时间戳格式,如 1702896000
  • 毫秒级时间戳:13位数字,精度为1毫秒(1/1000秒)。JavaScript 的 Date.now() 返回的就是毫秒级时间戳。
  • 微秒级时间戳:16位数字,精度为1微秒(1/1000000秒)。在一些高性能或数据库场景中使用。
简单判断方法:10位≈秒,13位≈毫秒,16位≈微秒。本工具支持自动识别。

2038问题源于32位有符号整数的限制。在32位系统中,Unix时间戳使用有符号32位整数(signed int32)存储,其最大值为 2,147,483,647,对应的时间是2038年1月19日03:14:07 UTC。超过这个值,时间戳会溢出回滚到1901年,导致软件异常。现代64位系统已大幅缓解此问题,但嵌入式设备、旧系统仍需注意。64位时间戳可支持到约2920亿年后。

Unix时间戳本身不包含时区信息,它始终基于UTC时间计算。同一时刻,全球各地的Unix时间戳完全相同。例如,北京时间(UTC+8)中午12:00对应的UTC时间是04:00,时间戳是固定的。在显示时,需要根据用户所在时区转换。本工具同时显示本地时间UTC时间,方便对比使用。

语言秒级时间戳毫秒级时间戳
JavaScriptMath.floor(Date.now()/1000)Date.now()
Pythonimport time; int(time.time())int(time.time()*1000)
JavaSystem.currentTimeMillis()/1000System.currentTimeMillis()
PHPtime()floor(microtime(true)*1000)
Gotime.Now().Unix()time.Now().UnixMilli()
MySQLUNIX_TIMESTAMP()UNIX_TIMESTAMP()*1000
Shelldate +%sdate +%s%3N

是的,Unix时间戳支持负数来表示1970年1月1日之前的日期。例如,时间戳 -86400 对应1969年12月31日00:00:00 UTC(纪元前1天)。本工具完全支持负数时间戳的转换,可以处理远至公元前的时间。不过,部分编程语言或数据库对负时间戳的支持可能有限,使用时请注意检查。

这通常是因为时区混淆造成的。常见原因:①将本地时间误当作UTC时间来计算时间戳;②在不同系统中使用了不一致的时区设置。解决方法是:始终明确时间戳基于UTC时间,在转换时确认源时间的时区。本工具提供本地时间和UTC时间双显示,帮助排查此类问题。如果结果恰好差8小时,很可能就是北京时间和UTC时间的差异。