gpt4 book ai didi

python - 如何*更改* struct_time 对象?

转载 作者:太空狗 更新时间:2023-10-29 17:38:35 24 4
gpt4 key购买 nike

在 python 中处理时间和日期时,您会偶然发现 time.struct_time 对象:

st = time.strptime("23.10.2012", "%d.%m.%Y")
print st
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=23, tm_hour=0, tm_min=0,
tm_sec=0, tm_wday=1, tm_yday=297, tm_isdst=-1)

既然这个结构不支持项目分配(即你不能做类似 st[1]+=1 的事情),怎么可能增加,比如说,月份数。

解决方案建议将这个time_struct转换成seconds并加上相应的秒数,但这看起来不太好。您还需要知道一个月有多少天,或者这一年是否是闰年。我想要一种简单的方法来获取 time_struct,例如

time.struct_time(tm_year=2012, tm_mon=11, tm_mday=23, tm_hour=0, tm_min=0,
tm_sec=0, tm_wday=1, tm_yday=297, tm_isdst=-1)

只是月份增加了一个。从头开始创建一个 time_struct 会很好——但是怎么做呢?有哪些方法?

最佳答案

使用 datetime module相反,它有一组更丰富的对象来处理日期(时间)算术:

import datetime
adate = datetime.datetime.strptime("23.10.2012", "%d.%m.%Y").date()
adate + datetime.timedelta(days=30)

您可以使用优秀的 python-dateutil add-on module获得处理增量的更丰富的选项集:

from dateutil.relativedelta import relativedelta
adate + relativedelta(months=1)

relativedelta 知道闰年、月的长度等,并且在将一个月添加到 1 月 30 日时会做正确的事情(你最终得到的是 2 月 28 日或 29 日,它不会t 跨月边界)。

关于python - 如何*更改* struct_time 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13031559/

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