Unix 时间戳转换器:时间戳与日期时间互转指南

网络安全 次阅读

什么是 Unix 时间戳?

Unix 时间戳(Unix Timestamp)是一个整数,表示从 1970 年 1 月 1 日 00:00:00 UTC(称为「Unix 纪元」)到某一时刻经过的秒数。例如:

1716076800  →  2024-05-19 00:00:00 UTC
0           →  1970-01-01 00:00:00 UTC(纪元起点)
-86400      →  1969-12-31 00:00:00 UTC(纪元之前)

时间戳也可以是毫秒(ms)精度:JavaScript 的 Date.now() 返回的是毫秒时间戳,比秒时间戳多 3 位。

为什么开发者使用时间戳?

  • 时区无关:时间戳是绝对时间,不受时区影响。存储时间戳后,在不同时区显示时再转换为本地时间,避免时区混乱
  • 易于计算:两个时间相差的秒数 = 时间戳之差,时间加减运算非常简单
  • 数据库友好:整数占用空间小,索引效率高,排序方便
  • 跨语言通用:所有主流编程语言都原生支持时间戳操作

如何互转时间戳和日期

使用 tool.tl 的时间戳转换器

  1. 访问 tool.tl/timestamp-converter
  2. 输入时间戳(秒或毫秒)→ 即时显示对应的日期时间(支持多时区)
  3. 或输入日期时间 → 即时显示对应的时间戳
  4. 工具自动识别秒/毫秒精度

代码中操作时间戳

# Python
import time
from datetime import datetime, timezone

# 获取当前时间戳(秒)
now_ts = int(time.time())           # 例:1716076800

# 时间戳转日期
dt = datetime.fromtimestamp(1716076800, tz=timezone.utc)
print(dt)  # 2024-05-19 00:00:00+00:00

# 日期转时间戳
dt = datetime(2024, 5, 19, tzinfo=timezone.utc)
ts = int(dt.timestamp())            # 1716076800

# JavaScript
Date.now()                          // 毫秒时间戳
new Date(1716076800000).toISOString()  // 2024-05-19T00:00:00.000Z
new Date('2024-05-19').getTime()    // 毫秒时间戳

常见时间单位换算

时间单位对应秒数时间戳差值
1 分钟60 秒60
1 小时3,600 秒3600
1 天86,400 秒86400
1 周604,800 秒604800
30 天2,592,000 秒2592000
1 年(365天)31,536,000 秒31536000

常见问题

2038 年问题是什么?

32 位有符号整数能表示的最大时间戳是 2,147,483,647,对应 2038 年 1 月 19 日。到那时,使用 32 位整数存储时间戳的旧系统将发生溢出。现代系统已普遍使用 64 位整数,这个问题已基本解决。

毫秒时间戳和秒时间戳怎么区分?

简单判断:如果时间戳超过 13 位数字(如 1716076800000),通常是毫秒;10 位数字(如 1716076800)通常是秒。转换器会自动识别。

转换器是免费的吗?

是的,tool.tl 的时间戳转换器完全免费,支持多时区显示,无需注册。