什么是时间戳?
Unix时间戳(Unix Timestamp)是从 1970年1月1日00:00:00 UTC 到指定时间的总秒数(或毫秒数)。
示例:时间戳 1742454400 对应 2025-03-20 12:00:00 UTC(北京时间 20:00:00)
10位 vs 13位时间戳
| 类型 | 精度 | 示例 |
|---|---|---|
| 10位 | 秒 | 1742454400 |
| 13位 | 毫秒 | 1742454400000 |
转换方法:13位→10位:除以1000取整;10位→13位:乘以1000
时区注意事项
时间戳默认是 UTC(协调世界时),而中国使用北京时间(UTC+8)。
- 将时间戳转为本地时间需要加上时区偏移
- 北京时间 = UTC时间 + 8小时
- 存储时建议使用UTC时间戳,显示时转为本地时间
编程语言中的时间戳
JavaScript
// 获取当前时间戳(13位毫秒)
Date.now(); // 1742454400000
// 时间戳转日期
new Date(1742454400000);
// Thu Mar 20 2025 20:00:00 GMT+0800
// 格式化
new Date().toLocaleString('zh-CN');
// "2025/3/20 20:00:00"
Python
import time
# 获取当前时间戳(秒)
ts = int(time.time()) # 1742454400
# 时间戳转本地时间
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(ts))
# '2025-03-20 20:00:00'
Java
// 获取当前时间戳(毫秒)
long ts = System.currentTimeMillis();
// 时间戳转日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(new Date(ts));
时间戳的常见用途
- 数据库主键:Snowflake算法生成唯一ID的一部分
- API缓存:HTTP响应头 Last-Modified 使用时间戳
- 日志记录:每条日志带时间戳方便排查问题
- Token过期:JWT的exp字段使用时间戳
- 文件命名:上传文件名加时间戳避免冲突
在线时间戳转换工具
使用我们的时间戳转换工具,支持秒/毫秒时间戳与日期实时互转,显示当前时间戳。