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

Python 3.8如何将负秒数转换为结构化时间?

处理Python中负时间戳的日期转换问题

你遇到的问题是因为time模块的localtime()函数在多数系统(尤其是Windows)中对1970年1月1日之前的时间戳支持有限,负时间戳会触发参数无效的错误。

改用datetime模块可以轻松解决这个问题,它对历史日期的兼容性更好。以下是修正后的代码:

from datetime import datetime, timezone

secs = -238204800
# 先将时间戳转换为UTC datetime对象,再格式化为目标字符串
dt = datetime.fromtimestamp(secs, timezone.utc)
print(dt.strftime("%Y:%m:%d %H:%M:%S"))

如果需要转换为本地时区而非UTC,也可以指定对应的时区(Python 3.9+可使用内置的zoneinfo,低版本可安装backports.zoneinfo),示例如下:

from datetime import datetime
from zoneinfo import ZoneInfo

secs = -238204800
dt = datetime.fromtimestamp(secs, ZoneInfo("Asia/Shanghai"))
print(dt.strftime("%Y:%m:%d %H:%M:%S"))

另外,你的原代码还有一个小语法错误:print语句末尾少了一个右括号,修正后即使不换模块,在支持早期时间戳的系统(比如部分Linux)上也能运行,但还是推荐用datetime保证跨系统兼容性。

内容的提问来源于stack exchange,提问作者Eric H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:58:14