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

将datetime字符串转为整数时出现无效字面量错误的问题

问题解决:datetime转Unix时间报错ValueError

错误原因

你代码里的date_time_h = now.strftime("%hr")用错了strftime格式符:

  • %h是月份的英文缩写(比如7月会输出Jul),加上后面的r就会生成Julr这种非数字字符串,转int时触发ValueError。
  • 要获取小时应该用%H(24小时制,00-23)或者%I(12小时制,01-12)。

修正后的代码

没必要拆分datetime再重组,直接对当前时间做运算更简洁:

from datetime import datetime, timedelta
import time

now = datetime.now()
# 直接对当前时间减12小时,不用拆分字段再拼接
date_time = now.replace(minute=0, second=0) - timedelta(hours=12)
# 转换为Unix时间戳
unix_time = round(time.mktime(date_time.timetuple()))

如果一定要保留拆分字段的写法,修正小时的格式符即可:

from datetime import datetime, timedelta
import time

now = datetime.now()
date_time_d = now.strftime("%d")
date_time_m = now.strftime("%m")
date_time_y = now.strftime("%Y")
# 这里改成%H(24小时制)
date_time_h = now.strftime("%H")
date_time = datetime(int(date_time_y), int(date_time_m), int(date_time_d), int(date_time_h), 0, 0) - timedelta(hours=12)

unix_time = round(time.mktime(date_time.timetuple()))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:54:22