0

我在 python 中有一个 UTCDateTime 对象,我需要检查它是否在今天之后但在明年之内。实现这一目标的最佳方法是什么?

提前致谢

从 13 个月变为 1 年。

4

2 回答 2

1
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 个月(回复:评论),您只需要担心闰年。

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)
于 2012-07-05T20:50:39.093 回答
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)
于 2012-07-05T21:05:51.510 回答