⏱
时间戳转换
Unix 时间戳与日期时间互相转换,自动识别秒/毫秒,支持北京时间、UTC 及全球常用时区
使用说明
时间戳转日期:输入 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 时间 | 北京时间 |
|---|---|---|
| 0 | 1970-01-01 00:00:00 | 1970-01-01 08:00:00 |
| 1000000000 | 2001-09-09 01:46:40 | 2001-09-09 09:46:40 |
| 1700000000 | 2023-11-14 22:13:20 | 2023-11-15 06:13:20 |
| 2147483647 | 2038-01-19 03:14:07 | 2038-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,长期日期(如合同到期日、固定资产折旧期、长期贷款到期日)建议使用DATETIME或DATE类型。