如何比较两个日期?

523 投票
7 回答
812036 浏览
提问于 2025-04-17 06:23

我想知道怎么用Python比较两个日期,看看哪个日期更晚。

比如,我想检查一下当前日期是否已经超过我正在创建的假期日期列表中的最后一个日期,这样就可以自动发送一封邮件,提醒管理员更新holiday.txt文件。

7 个回答

50

datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2) 这个表达式会返回 True,意思是2011年1月1日确实早于2011年1月2日。

datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2) 这个表达式会返回 datetime.timedelta(-1),表示从2011年1月1日到2011年1月2日的时间差是负一天,也就是1月1日比1月2日早一天。

datetime.date(2011, 1, 2) - datetime.date(2011, 1, 1) 这个表达式会返回 datetime.timedelta(1),表示从2011年1月1日到2011年1月2日的时间差是正一天,也就是1月2日比1月1日晚一天。

可以查看 文档 了解更多信息。

112

使用 time

假设你有一些初始日期,它们是这样的字符串:

date1 = "31/12/2015"
date2 = "01/01/2016"

你可以这样做:

newdate1 = time.strptime(date1, "%d/%m/%Y")
newdate2 = time.strptime(date2, "%d/%m/%Y")

把它们转换成Python的日期格式。这样一来,比较就很简单了:

  • newdate1 > newdate2 会返回 False
  • newdate1 < newdate2 会返回 True
657

使用 datetime 方法和运算符 < 以及它的相关运算符。

>>> from datetime import datetime, timedelta
>>> past = datetime.now() - timedelta(days=1)
>>> present = datetime.now()
>>> past < present
True
>>> datetime(3000, 1, 1) < present
False
>>> present - datetime(2000, 4, 4)
datetime.timedelta(4242, 75703, 762105)

撰写回答