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)

ただし...たとえば、2月31日が存在しないため、1月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

The dateutil module can handle this for you... (Works same with datetime's as well)

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 に答える