You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将13位毫秒级Unix时间戳转换为标准时间格式

解决13位毫秒级Unix时间戳转格式化时间的问题

嘿,我来帮你搞定这个时间戳转换的坑!你之前的问题出在对13位时间戳的理解上——这是毫秒级的Unix时间戳,而time.localtime()需要的是秒级的数值,你直接截断前9位的操作完全搞错了逻辑,才会得到1974年的错误结果。

正确的转换方法(两种可选)

方法一:使用time模块

核心是把13位毫秒时间戳除以1000,转换成秒级时间戳后再处理:

import time

# 你的13位毫秒时间戳
ms_ts = "1523126888080"
# 转换为秒级时间戳(转成整数后除以1000,或者直接转浮点数都可以)
sec_ts = int(ms_ts) / 1000
# 格式化目标时间格式
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sec_ts))
print(formatted_time)  # 输出:2018-04-08 12:18:08

方法二:使用datetime模块(更直观)

datetime模块的fromtimestamp方法也支持处理浮点数的时间戳,代码更简洁:

from datetime import datetime

ms_ts = "1523126888080"
formatted_time = datetime.fromtimestamp(int(ms_ts)/1000).strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)  # 同样输出:2018-04-08 12:18:08

为什么之前的代码出错?

你之前取了"1523126888080"的前9位得到152312688,这个数值对应的是1974年的秒级时间戳,和正确的秒级时间戳1523126888差了一个数量级,自然会得到完全错误的结果啦。

内容的提问来源于stack exchange,提问作者The_Anil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:49:38