Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 日期时间明年到期_Python_Datetime - Fatal编程技术网

Python 日期时间明年到期

Python 日期时间明年到期,python,datetime,Python,Datetime,我有一个python中的UTCDateTime对象,我需要检查它是否在今天之后但在明年内。实现这一目标的最佳方式是什么 提前谢谢 从13个月改为1年。dateutil模块可以为您处理此问题。。。(也适用于datetime的) now = datetime.datetime.utcnow() if now.month < 12: expire_date = now.replace(year=now.year + 1, month=now.month + 1)

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

提前谢谢


从13个月改为1年。

dateutil模块可以为您处理此问题。。。(也适用于datetime的)

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)

如果只检查一年而不是13个月,你会怎么样?然后你就可以完全消除这种情况。。。只需使用
exp\u date=now.replace(year=now.year+1)
,尽管闰年可能仍然会咬你一口。你可以检查一下。我怎么能用它作为布尔值呢?
datetime
对象直接支持比较。您可以通过
now
检查今天是否早于到期日期,如果现在您可以将条件从13个月改为一些天数,例如390,您会过得更好。这就是为什么你会看到像90天保修这样的事情。不知道
dateutil
+1的最佳答案和教训!
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)
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)