首页 / 日期时间 / 时间戳转换

时间戳转换

Unix 时间戳与日期时间互相转换,自动识别秒/毫秒,支持北京时间、UTC 及全球常用时区

10 位为秒,13 位为毫秒,自动识别
时间戳转日期时为显示时区;日期转时间戳时为输入日期所在时区
输入后自动计算

使用说明

时间戳转日期:输入 Unix 时间戳,转换为所选时区的日期时间,同时给出 ISO 8601 格式、UTC 时间、星期、毫秒时间戳,以及距离当前时间多久(如“3 天前”“2 小时后”)。页面打开时默认填入当前时间戳。

  • 单位选“自动识别”时:10 位左右按,13 位按毫秒(12 位及以上一律视为毫秒)。
  • 也可手动指定单位为“秒”或“毫秒”。
  • 支持负数时间戳(1970 年以前的时间)。

日期转时间戳:选择日期时间与其所在时区,得到秒级与毫秒级时间戳。

同一个时间戳在不同时区显示的“钟面时间”不同,但它们表示的是同一瞬间;反过来,同一个钟面时间在不同时区对应的时间戳也不同。转换前请确认时区。

时间戳基础知识

什么是 Unix 时间戳

Unix 时间戳(Unix timestamp / POSIX time)是从 1970年1月1日 00:00:00 UTC(称为 Unix 纪元,Epoch)起经过的秒数,不计闰秒。它与时区无关,是计算机系统记录时间最常用的方式。

时间戳(秒)UTC 时间北京时间
01970-01-01 00:00:001970-01-01 08:00:00
10000000002001-09-09 01:46:402001-09-09 09:46:40
17000000002023-11-14 22:13:202023-11-15 06:13:20
21474836472038-01-19 03:14:072038-01-19 11:14:07

秒与毫秒

单位位数(当前)常见来源
10 位PHP time()、MySQL UNIX_TIMESTAMP()、Linux date +%s、Python int(time.time())
毫秒13 位JavaScript Date.now()、Java System.currentTimeMillis()

毫秒时间戳 = 秒级时间戳 × 1000(再加上毫秒部分)。

时区

  • UTC(协调世界时)是国际标准时间,时间戳本身就以 UTC 为基准。
  • 北京时间为 UTC+8,全年不实行夏令时;香港、新加坡同为 UTC+8,东京为 UTC+9。
  • 伦敦、里斯本、巴黎、纽约、洛杉矶等地实行夏令时,一年中不同时期与 UTC 的差值不同,本工具按当日实际规则自动计算。夏令时开始当天,时钟拨快的那一小时并不存在,工具会给出提示。
  • 莫桑比克马普托为 UTC+2,巴西圣保罗为 UTC-3,均不实行夏令时。

2038 年问题

许多老系统用 32 位有符号整数保存秒级时间戳,最大值为 2147483647,对应 2038年1月19日 03:14:07 UTC(北京时间 11:14:07)。超过这一刻后数值溢出,会变成负数而被误认为 1901 年。

  • 64 位系统与现代编程语言(PHP 7+ 64 位版本、Java、JavaScript 等)已不受影响。
  • MySQL 的 TIMESTAMP 类型同样只能存到 2038-01-19,长期日期(如合同到期日、固定资产折旧期、长期贷款到期日)建议使用 DATETIMEDATE 类型。