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

Python列表批量操作:日期转Unix时间戳返回重复值问题排查

问题原因
  • 你的第二段遍历dates的for循环,没有使用每次迭代取出的date变量,所有转换逻辑固定调用datetime.date.today()获取当日日期计算时间戳,因此每次追加到unixdates的数值完全一致。
  • 你代码中dates列表的日期格式为%Y/%m/%d,而转换时写死了%m/%d/%Y的解析格式,就算用了date变量也会出现格式匹配报错。
修复后代码
import datetime
import time
from datetime import timedelta

now = datetime.datetime.today()
dates = []
for x in range(7):
    d = now - timedelta(days=x)
    dates.append(d.strftime("%Y/%m/%d"))
print(dates)
unixdates = []
for date in dates:
    # 直接使用遍历得到的date变量转换,格式和生成时保持一致
    e = time.mktime(datetime.datetime.strptime(date, '%Y/%m/%d').timetuple())
    unixdates.append(e)
print(unixdates)
优化建议

你完全可以在第一个生成日期的循环中直接计算并存储Unix时间戳,避免日期转字符串、再转回日期的多余开销,示例如下:

now = datetime.datetime.today()
dates = []
unixdates = []
for x in range(7):
    d = now - timedelta(days=x)
    dates.append(d.strftime("%Y/%m/%d"))
    unixdates.append(time.mktime(d.timetuple()))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:57:00