日期时间 本地计算 开箱即用 内置示例 不留痕迹

时间戳转换

Unix 时间戳与人类日期双向转换:10 位秒、13 位毫秒、16 位微秒、19 位纳秒自动识别(也可手动指定),UTC 与本地时间同时显示,附星期与 2038 年溢出提示。页面顶部实时显示当前时间戳,全部在浏览器本地完成。

看日志、对接口、查数据库,时间戳无处不在:10 位秒级、13 位毫秒级最常见,16 位微秒、19 位纳秒也偶有出现。本工具自动识别位数(也可手动指定),双向转换,UTC 与本地时间同时显示,附星期与 2038 年溢出提示,页面顶部还有实时跳动的当前时间戳。

两个实用提醒:一是位数识别——13 位是毫秒,直接除以 1000 就是秒;二是 2038 问题——32 位系统的 time_t 在 2038-01-19 03:14:07 UTC 溢出,老系统(32 位嵌入式、旧数据库字段)存 2038 年后的时间会出错,本工具对超出范围的输入会明确提示。

·

使用步骤

  1. 粘时间戳(10/13/16/19 位自动识别),或输入日期反向生成。
  2. 看 UTC 与本地时间两行结果,附星期几。
  3. 接近 2038-01-19 的时间戳留意溢出提示。
  4. 页面顶部实时显示当前时间戳,抓包对表直接抄。

计算原理与示例

Unix 时间戳是什么

Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数,不含闰秒。JavaScript、Java 等语言常用毫秒级(13 位),10 位秒级则见于各种日志与数据库。

秒、毫秒、微秒怎么区分

时间戳 1000000000 对应 2001-09-09 01:46:40 UTC(北京时间 09:46:40,星期日);1234567890 对应 2009-02-13 23:31:30 UTC。位数决定单位:≤10 位按秒、13 位按毫秒、16 位按微秒、19 位按纳秒。

时区与时间戳换算

日期转时间戳注意时区口径:2026-09-11 00:00:00 按 UTC 是 1789104000,按东八区则是 1789056000,相差 8 小时。结果可一键复制秒值或毫秒值。

代码示例

JavaScript 秒与毫秒互转

const sec = Math.floor(Date.now() / 1000);        // 10 位秒
const ms = Date.now();                             // 13 位毫秒

new Date(sec * 1000).toISOString();                // 秒 → ISO
new Date(ms).toLocaleString("zh-CN", { hour12: false });

// 13 位判断:> 1e12 即毫秒(2286 年前的秒级时间戳不会到 13 位)

Python time 与 datetime 互转

import time
from datetime import datetime, timezone

ts = int(time.time())                              # 10 位秒

datetime.fromtimestamp(ts)                         # 本地时间
datetime.fromtimestamp(ts, tz=timezone.utc)        # UTC
datetime(2026, 9, 15, 12, 0).timestamp()           # 日期 → 秒

# 毫秒:int(time.time() * 1000);解析毫秒除以 1000 再传

常见问题

10 位和 13 位时间戳怎么区分?

数位数:10 位是秒级(如 1789056000 ≈ 2026-09),13 位是毫秒级(如 1789056000000)。JavaScript 的 Date.now() 和 Java 的 System.currentTimeMillis() 返回毫秒,Unix date +%s 与 MySQL UNIX_TIMESTAMP() 返回秒。本工具按位数自动识别,也可手动指定。

2038 年问题是什么?

很多老系统用 32 位有符号整数存秒级时间戳,最大值 2147483647 对应 2038-01-19 03:14:07 UTC,下一秒就会溢出变成负数。现代 64 位系统不受影响,但嵌入设备、老数据库字段可能中招。本工具在结果超出 32 位范围时会给出提示。

时间戳有时区吗?

时间戳本身是绝对时刻,没有时区概念;时区只影响「显示成什么日期时间」。同一时间戳在 UTC 下显示 01:46,在北京时间下显示 09:46。日期转时间戳时必须说明口径:本工具日期转时间戳支持 UTC 与本地时区两种口径,差 8 小时就是这个原因。

Unix 时间戳是怎么定义的?

定义为「从 1970-01-01 00:00:00 UTC 起经过的秒数」,且不计闰秒。因为它基于 UTC,同一时刻在任何时区的时间戳都相同,只有显示成本地日期时才需要加上时区偏移。

怎么把时间戳转成可读日期?

秒级时间戳先乘 1000 得到毫秒,再用日期函数转换:JavaScript 用 new Date(ms),PHP 用 date('Y-m-d', ts),Python 用 datetime.fromtimestamp。务必区分秒与毫秒,搞错会差出一千倍。

数据库里该存时间戳还是日期时间?

各有场景:时间戳是整数,比较排序快、无时区歧义,适合记录精确时刻;DATETIME / TIMESTAMP 字段可读性好、便于按日期分组统计。多数系统的做法是存时间戳或 UTC 时间,展示时再按用户时区格式化。

为什么时间戳会有 16 位甚至 19 位?

因为单位不同:10 位是秒、13 位是毫秒、16 位是微秒、19 位是纳秒。JavaScript 使用毫秒(13 位),部分接口会返回微秒或纳秒。识别办法是看位数,或用「是否大于 1e12」判断是否为毫秒级。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。