我在python中有一个UTCDateTime对象,我需要检查它是在今天之后但是在明年之内。实现这一目标的最佳方法是什么?
提前致谢
从13个月改为1年。
答案 0 :(得分:2)
now = datetime.datetime.utcnow()
if now.month < 12:
expire_date = now.replace(year=now.year + 1, month=now.month + 1)
else:
expire_date = now.replace(year=now.year + 2, month=0)
虽然......如果你在1月31日开始运行它仍然会失败,因为2月31日不存在。您可以添加一些与月份相关性相关的条件,以避免出现这些问题。
如果你把它改为12个月(re:评论),你只需要担心闰年。
now = datetime.datetime.utcnow()
exp_year = now.year + 1
exp_month = now.month
exp_day = now.day
if exp_month == 2 and exp_day == 29:
exp_month += 1
exp_day = 1
exp_date = now.replace(year=exp_year, month=exp_month, day=exp_day)
答案 1 :(得分:1)
dateutil
模块可以为您处理...(与日期时间相同)
from datetime import date
from dateutil import relativedelta
from date import date
d = date(2011, 1, 31)
delta = relativedelta.relativedelta(months=13)
d + delta
#datetime.date(2011, 2, 28)