时间戳转换
秒/毫秒/微秒↔日期/多时区
时间戳 ↔ 日期 双向转换
世界多时区对照
基于当前时间戳,14 个常用时区同步显示(高亮 = 你的本地时区)
批量时间戳 → 日期
说明
· Unix 时间戳:自 UTC 1970-01-01 00:00:00 起的秒数。10 位 = 秒级,13 位 = 毫秒级,16 位 = 微秒级,自动识别。
· 浏览器本地时区为 ,转换默认按本地时区显示,对照表同时给出 UTC 与全球 13 个常用时区。
· JS 原生 Date.now() 返回毫秒级,后端常用秒级,注意 × 1000 / 1000 换算。
· 2038 年问题:32 位有符号 int 时间戳最大值 = 2147483647(2038-01-19 03:14:07 UTC)。老系统未升级到 64 位将溢出,需用 BigInt 或换 64 位实现。
关于本工具
了解工具定位 · 使用场景 · 对比优势
输入秒、毫秒或微秒时间戳,立即转为可读的日期时间,并支持多时区显示。开发者调试接口、数据分析师处理日志、运维排查问题时,无需手动计算或切换时区。所有转换在浏览器内完成,数据不上传服务器。
使用场景
日志排错定位
后端开发者在排查线上问题时,日志里全是 1696492800 这样的 Unix 时间戳。手动换算容易出错,尤其秒与毫秒混用时(1696492800000 对应不同日期)。本工具支持秒 / 毫秒 / 微秒三种精度自动识别,输入后直接显示对应 UTC 与东八区时间,省去心算步骤,快速定位异常时间点。
API 联调测试
前端工程师对接第三方 API 时,返回的 created_at 字段是毫秒级时间戳。需要确认该时间戳是否准确对应预期日期,以及时区转换是否一致。本工具可同时输入多个时间戳(秒 / 毫秒 / 微秒混合),一键输出各时区日期,避免因单位混淆导致的联调返工。
跨时区会议确认
跨国团队约会议时,A 成员在 UTC+8 给出北京时间 15:00,B 成员在 UTC-5 需要换算。本工具输入日期时间后,可同时查看多个时区的对应时间戳,确保各方看到的是同一个时刻。不再因时区换算错误而错过会议。
游戏活动排期
游戏运营策划限时活动时,后台配置的是 Unix 时间戳(秒级)。需要验证配置的 start_time 和 end_time 是否准确落在目标日期范围,避免活动提前开启或延迟结束。本工具输入时间戳后直接显示日期时间,快速校验配置是否正确。
Token 过期验证
安全工程师在检查 JWT Token 的 exp 字段时,拿到的是一个毫秒级时间戳。需要确认该时间戳是否确实在未来,以及精确到秒的剩余有效期。本工具支持微秒级精度,可精确判断 Token 是否已过期,避免因精度误判导致的安全漏洞或误封。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 | 竞品 A (timestamp-converter.com) | 传统方法 (手动计算) |
|---|---|---|---|
| 数据隐私 | 纯浏览器,零上传 | 上传到服务器处理 | 完全本地,无网络依赖 |
| 时区支持 | 多时区同时显示(UTC/本地/自定义) | 仅支持 UTC 和本地时区 | 需手动查时区偏移表 |
| 精度单位 | 秒/毫秒/微秒三档切换 | 仅秒和毫秒 | 仅秒级(手动换算易错) |
| 批量处理 | 单次输入,逐条转换 | 支持批量粘贴多行时间戳 | 逐条手工计算,无批量能力 |
| 离线可用 | 完全离线(PWA 缓存后) | 需联网 | 完全离线 |
| 处理速度 | 即时(< 0.1 秒) | 1-3 秒(含网络延迟) | 数分钟(含查表和计算) |
| 收费 | 免费,无隐藏付费 | 免费,但含广告 | 免费(仅需纸笔) |
使用指南
上手步骤 · 输入输出 · 避坑提示
使用步骤
- 在输入框中粘贴秒、毫秒或微秒数值,支持整数与小数
- 点击「转换」按钮,或按回车键立即执行转换
- 查看结果区:左侧显示 UTC 时间,右侧显示本地时间及日期
- 点击时区下拉菜单,选择其他时区(如 Asia/Shanghai)查看对应时间
- 点击结果行旁的「复制」图标,将转换后的日期时间复制到剪贴板
输入输出示例7 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 1700000000 | 2023-11-14 22:13:20 UTC+8 | 典型场景:秒级 Unix 时间戳转北京时间 |
| 1700000000000 | 2023-11-14 22:13:20.000 UTC+8 | 典型场景:毫秒级时间戳(13 位) |
| 0 | 1970-01-01 08:00:00 UTC+8 | 边界 case:Unix 纪元起点(1970-01-01 UTC) |
| 2147483647 | 2038-01-19 11:14:07 UTC+8 | 边界 case:32 位有符号整数最大值 |
| 9999999999999 | 2286-11-20 17:46:39.999 UTC+8 | 边界 case:13 位毫秒时间戳最大值 |
| 2023-11-14 14:13:20 | 1700000000 (秒) | 1700000000000 (毫秒) | 易错 case:输入日期字符串,自动识别无时区 |
| 1700000000.5 | 2023-11-14 22:13:20.500 UTC+8 | 易错 case:带小数秒(毫秒精度) |
常见错误对照8 个常踩的坑 · 错误 → 修复
1. 毫秒当秒输入
16900000001690000000000Unix 时间戳标准单位是秒;但 JavaScript 的 Date.now() 返回毫秒,直接复制粘贴会导致日期偏离 1970 年
2. 忽略时区偏移
输入 1690000000 期望得到 2023-07-22 08:00:00 但工具显示 2023-07-22 00:00:00确认工具显示的是 UTC 还是本地时区;多时区工具需手动选择目标时区时间戳本身无时区;同一时间戳在不同时区显示不同日期时间,工具默认输出 UTC 或浏览器本地时区
3. 负时间戳前导零或空格
-86400-86400带前导空格或零会被部分解析器视为非法或截断;严格解析要求符号紧接数字,无空格
4. 混淆秒与毫秒的精度
输入 1690000000.123 期望得到毫秒级日期输入 1690000000123时间戳转换工具通常按整数处理;小数秒需先乘以 1000 转为毫秒整数再输入
5. 日期格式不符合 ISO 8601
07/22/2023 08:00:002023-07-22T08:00:00Z工具解析日期时依赖标准格式;美式月/日/年会被误解析为日/月/年,导致日期错误
6. 把微秒当毫秒输入
输入 1690000000000 期望得到微秒级日期但显示毫秒级输入 1690000000000000微秒是毫秒的 1000 倍;若工具默认毫秒,输入微秒值会得到错误的未来日期
7. 忽略闰秒
假设 2016-12-31 23:59:60 对应时间戳 14832287991483228800Unix 时间戳忽略闰秒;POSIX 标准规定一天固定 86400 秒,闰秒不反映在时间戳中
8. 时区缩写误用
输入 CST 期望中国标准时间(UTC+8)明确选择 Asia/Shanghai 或 UTC+8CST 同时代表中国标准时间、美国中部时间、古巴标准时间;工具应使用 IANA 时区标识符避免歧义
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
T = t / 1000
变量说明
T— Unix 时间戳(秒)t— 毫秒数
示例
已知毫秒时间戳 1700000000000,转换为秒:T = 1700000000000 / 1000 = 1700000000 秒。对应 UTC 时间 2023-11-15 00:53:20。
适用范围
适用于 Unix 时间戳(1970-01-01 00:00:00 UTC 起)的秒/毫秒/微秒互转。不适用于非 Unix 纪元(如 Windows FILETIME)或闰秒处理场景。
原理图
开发者集成
3 种主流语言 · 复制即用
from datetime import datetime, timezone
# 秒级时间戳 → UTC 日期时间
ts = 1718000000
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
print(dt.isoformat()) # 2024-06-10T10:13:20+00:00
# 毫秒级时间戳 → UTC 日期时间
ms_ts = 1718000000123
dt = datetime.fromtimestamp(ms_ts / 1000, tz=timezone.utc)
print(dt.isoformat()) # 2024-06-10T10:13:20.123000+00:00
# 日期时间 → 秒级时间戳
dt = datetime(2024, 6, 10, 10, 13, 20, tzinfo=timezone.utc)
ts = int(dt.timestamp())
print(ts) # 1718000000
# 日期时间 → 毫秒级时间戳
ms_ts = int(dt.timestamp() * 1000)
print(ms_ts) # 1718000000000
# 微秒级时间戳(Python 3.12+ 支持)
us_ts = 1718000000123456
dt = datetime.fromtimestamp(us_ts / 1_000_000, tz=timezone.utc)
print(dt.isoformat()) # 2024-06-10T10:13:20.123456+00:00package main
import (
"fmt"
"time"
)
func main() {
// 秒级时间戳 → UTC 日期时间
var ts int64 = 1718000000
dt := time.Unix(ts, 0).UTC()
fmt.Println(dt.Format(time.RFC3339)) // 2024-06-10T10:13:20Z
// 毫秒级时间戳 → UTC 日期时间
msTs := int64(1718000000123)
dt = time.UnixMilli(msTs).UTC()
fmt.Println(dt.Format(time.RFC3339Nano)) // 2024-06-10T10:13:20.123Z
// 微秒级时间戳 → UTC 日期时间
usTs := int64(1718000000123456)
dt = time.UnixMicro(usTs).UTC()
fmt.Println(dt.Format(time.RFC3339Nano)) // 2024-06-10T10:13:20.123456Z
// 日期时间 → 秒级时间戳
dt = time.Date(2024, 6, 10, 10, 13, 20, 0, time.UTC)
ts = dt.Unix()
fmt.Println(ts) // 1718000000
// 日期时间 → 毫秒级时间戳
msTs = dt.UnixMilli()
fmt.Println(msTs) // 1718000000000
// 日期时间 → 微秒级时间戳
usTs = dt.UnixMicro()
fmt.Println(usTs) // 1718000000000000
}// 秒级时间戳 → 日期时间(本地时区)
const ts = 1718000000;
const dt = new Date(ts * 1000);
console.log(dt.toISOString()); // 2024-06-10T10:13:20.000Z
// 毫秒级时间戳 → 日期时间
const msTs = 1718000000123;
const dtMs = new Date(msTs);
console.log(dtMs.toISOString()); // 2024-06-10T10:13:20.123Z
// 微秒级时间戳 → 日期时间(JS 精度限制,微秒部分会丢失)
const usTs = 1718000000123456;
const dtUs = new Date(usTs / 1000);
console.log(dtUs.toISOString()); // 2024-06-10T10:13:20.123Z
// 日期时间 → 秒级时间戳
const dt2 = new Date('2024-06-10T10:13:20Z');
const ts2 = Math.floor(dt2.getTime() / 1000);
console.log(ts2); // 1718000000
// 日期时间 → 毫秒级时间戳
const msTs2 = dt2.getTime();
console.log(msTs2); // 1718000000000
// 日期时间 → 微秒级时间戳(JS 精度限制,微秒部分为 0)
const usTs2 = dt2.getTime() * 1000;
console.log(usTs2); // 1718000000000000常见问题
7 个高频疑问