时间戳和日期怎么互相转换?
Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 起算的秒数(部分系统用毫秒),它本身不带时区,全球同一时刻对应同一个时间戳。
最省事的方法是直接用微时钟的Unix 时间戳转换工具,在「日期 ↔ 时间戳」之间即时互转。
时间戳转成日期
以秒级时间戳 1787111500 为例:它对应 2026 年 8 月 19 日(北京时间)。转换时只要把秒数加上 8 小时(北京时间)再换算成日期即可。
拿到 13 位毫秒级时间戳时,要先除以 1000 再换算。
日期转成时间戳
反过来,把「2026-08-19 10:00:00(北京时间)」换算成时间戳,需要先换算成 UTC 时刻再求距 1970-01-01 的秒数。手工计算容易出错,尤其是跨闰年、跨月的时候,推荐交给在线工具完成。
常用编程语言怎么写
- JavaScript:当前秒级时间戳
Math.floor(Date.now() / 1000),毫秒级直接Date.now()。 - Python:
import time; time.time()得到浮点秒数。 - Shell:
date +%s得到当前秒级时间戳。 - Excel:把秒级时间戳所在单元格除以 86400 再加 25569(UTC+8 再加 8/24),设置日期格式即可显示。
更多语言的完整写法可以看各编程语言获取当前时间戳的方法,时间戳的原理与来历见什么是 Unix 时间戳。
转换时最容易踩的三个坑
- 秒 vs 毫秒:10 位是秒,13 位是毫秒,混用会差 1000 倍。
- 时区:时间戳是 UTC 时刻,显示成哪个时区的日期由你来定,别把 UTC 当北京时间。
- 2038 年问题:32 位整数存不下 2038 年以后的秒数,相关讨论见2038 年问题详解。