在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_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
很好,但是如何创建呢?有什么办法?
所以。。。文档中给出了元组基础时间结构的架构: http://docs.python.org/2/library/time.html#time.struct_time
即使它作为时间结构是只读的,您也可以使用casting to list()直接获取该元组(记住在您增加元组后将其括起来,并将结束范围保持在1-12而不是0-11)。然后
time.struct_time()
函数将有效的9元组转换回时间结构:使用^{} module 代替,它有更丰富的对象集来处理日期(时间)算法:
您可以使用优秀的^{} add-on module 来获得处理增量的更丰富的选项集:
relativedelta
知道闰年、月长等,并且在1月30日(比如2月28日或29日结束,不会跨越月边界)添加一个月时会做正确的事情。您可以先将其转换为datetime,然后向其添加timedelta偏移量:
参考文献:
相关问题 更多 >
编程相关推荐