我想在脚本中解析日期,我想知道是否有相同的:
relativedelta(days=1, weekday=MO)
但是好几个月?
现在,我在文本中提取月份编号,并将其与文档的创建日期(和月份)进行比较。然而,这是漫长而重复的(我必须为将来的时态,现在的时态和过去的时态做到这一点)......
答案 0 :(得分:2)
将relativedelta(month=2)
添加到datetime
对象将为您提供相同的日期和时间,2月除外。如果这创建了一个不存在的日期,则日期将在最后一个现有日期被截断,例如:
from datetime import datetime
from dateutil.relativedelta import relativedelta
print(datetime(2015, 3, 30) + relativedelta(month=2)) # 2015-02-28 00:00:00
正如relativedelta documentation:
中所述年,月,日,小时,分钟,秒,微秒:
绝对信息(论证是单数);添加或减去a 具有绝对信息的relativedelta不执行aritmetic 操作,而是替换中的相应值 原始日期时间,其值为relativedelta。
所有“单数”参数都被处理为“设置我将被添加到/减去此值的事物的这个组件”,而相同参数的复数版本说“将此数字加/减到/来自这个组成部分“。
请注意,relativedelta文档还列出了每个组件的应用顺序,但足以说明在之前相对值应用了绝对值,因此relativedelta(month=3, months=2)
会将月份设置为3月,然后增加2个月(所以,基本上,它相当于relativedelta(month=5)
)。
答案 1 :(得分:1)
相当于weekday = MO
(或weekday = calendar.MONDAY
),1月份为month = 1
,2月份为month = 2
,依此类推。
答案 2 :(得分:-1)
Python arrow
库最优雅地处理这些操作。如果需要继续使用datetime
,则可以将日期时间对象转换为箭头对象和副对象,即与其他模块兼容。