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

Python如何将13位毫秒时间戳转换为可读时间格式?

Python处理13位毫秒级Unix时间戳报错的解决方法

报错原因

你拿到的时间戳1635251181000是毫秒级的Unix时间戳,而Python标准库datetime的fromtimestamp()方法默认接收的是秒级的Unix时间戳,直接传入13位的毫秒级时间戳会因为数值超出合法范围触发OSError: [Errno 22] Invalid argument错误。

正确处理方案

处理逻辑为:把毫秒级时间戳除以1000转换为秒级之后再传入方法即可,也可以根据需求保留毫秒精度。

基础转换(秒级易读时间)

from datetime import datetime

raw_timestamp = 1635251181000
# 转换为秒级时间戳
second_timestamp = raw_timestamp / 1000
# 转换为本地时区的易读格式
local_time = datetime.fromtimestamp(second_timestamp)
print(local_time.strftime("%Y-%m-%d %H:%M:%S"))
# 输出示例:2021-10-26 20:26:21

保留毫秒精度的转换

如果需要保留原始的毫秒信息,可以用如下方式处理:

from datetime import datetime

raw_timestamp = 1635251181000
second_timestamp = raw_timestamp / 1000
local_time = datetime.fromtimestamp(second_timestamp)
# 格式化时保留毫秒
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3])
# 输出示例:2021-10-26 20:26:21.000

转换为UTC时间(可选)

如果需要转换为UTC标准时间而非本地时区,替换为utcfromtimestamp方法即可:

utc_time = datetime.utcfromtimestamp(raw_timestamp / 1000)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S"))

补充:从原始字符串提取时间戳

如果你的输入是类似"TimeStamp: 1635251181000"的字符串,可以先拆分提取时间戳数值再处理:

raw_str = "TimeStamp: 1635251181000"
raw_timestamp = int(raw_str.split(": ")[1])
# 后续转换逻辑和上述方案一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:02