用代码实现时间戳

31 0

时间戳(Unix 时间戳)是从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数,与时区无关,同一时刻在全世界的时间戳都相同。下面说明代码写法。

用代码实现时间戳

下面是用 Python 实现的写法,可以按需要修改:

import time, datetime as dt
from zoneinfo import ZoneInfo
print(int(time.time()))                                   # 当前秒级时间戳
print(dt.datetime.fromtimestamp(1794326400, ZoneInfo('Asia/Shanghai')))
print(int(dt.datetime(2026, 11, 11, tzinfo=ZoneInfo('Asia/Shanghai')).timestamp()))

示例

输入:北京时间 2024-02-29 12:00:00

转换结果:秒级 1709179200,毫秒级 1709179200000

说明:对应 UTC 时间 2024-02-29 04:00:00,北京时间比 UTC 早 8 小时。

核心要点

  • 起点是 1970-01-01 00:00:00 UTC,称为 Unix 纪元
  • 秒级时间戳目前是 10 位,毫秒级是 13 位
  • 时间戳本身没有时区,转换成日期时才需要指定时区
  • 北京时间 = UTC + 8 小时
  • 32 位有符号整数存秒级时间戳会在 2038-01-19 03:14:07 UTC 溢出

规则说明

  • 秒级 10 位,毫秒级 13 位,微秒级 16 位
  • 时间戳 0 = 1970-01-01 08:00:00 北京时间
  • 每天 86400 秒,不计闰秒
  • 负数表示 1970 年以前
  • 同一时刻在不同时区时间戳相同

实用技巧

  • 数据库统一存 UTC 或时间戳
  • 前后端约定好单位,接口文档写清楚
  • 日志同时输出时间戳和 ISO 时间
  • 64 位整数避免 2038 年问题

本站的时间戳转换工具可以直接在网页中使用,无需安装,适合快速得到和核对结果。

常见问题

【时间戳是 10 位还是 13 位?】10 位是秒,13 位是毫秒,转换前先确认单位。

【时间戳 0 是什么时间?】UTC 1970-01-01 00:00:00,即北京时间 1970-01-01 08:00:00。

【不同国家的时间戳一样吗?】同一时刻全世界的时间戳完全相同,差别只在显示成本地时间时。

文中示例可以在本站对应工具中核对。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 时间戳 实用工具

抱歉,评论功能暂时关闭!