gpt4 book ai didi

python - 时间未添加到 Python 中的日期对象

转载 作者:行者123 更新时间:2023-11-29 14:18:40 25 4
gpt4 key购买 nike

我正在使用 psycopg2 将 csv 文件中的值插入到 postgres 数据库中。每次从 csv 文件中读取新行时,我都需要将开始时间增加 6 小时。我正在尝试通过以下方式实现这一目标:

date_product_str = '2015-03-05 12:00:00'
date_product = datetime.datetime.strptime(date_product_str, "%Y-%m-%d %H:00:00").date()

date_valid = date_product
interval = datetime.timedelta(hours=6)

id_location=38
in_file = open("inform_values.csv", "r")


while True:
line = in_file.readline()
if not line: break
tokens = line.split(",")
for i in range (1, 140):
cur.execute("INSERT INTO inform_tseries_data_basin_proc_fcst_prob_flow (date_product, date_valid, id_location, id_member, value) VALUES (%s, %s, %s, %s, %s)", (date_product, date_valid, id_location, i, tokens[i]))
date_valid = date_valid + interval
print date_valid
conn.commit()


cur.close()
conn.close()

但这只是在每一步打印出 2015-03-05。当我将间隔设置为 1 天时:

interval = datetime.timedelta(days=1)

它按预期一天递增。为什么几个小时都不工作?

最佳答案

date 对象没有小时、分钟、秒或微秒的概念 - 只有年、月和日。在 date + timedelta 算法中 - 正如文档所说 - “timedelta.secondstimedelta.microseconds 被忽略。”

如果您需要计算小时数,则需要一个 datetime 对象。如果您从 date_product 初始化中删除尾随的 .date() 提取器,您将会拥有。

关于python - 时间未添加到 Python 中的日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com