大于'date'python 3

2024-06-28 15:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能做的比日期大,比日期少。我该怎么做呢?例如:

date1 = "20/06/2013"
date2 = "25/06/2013"
date3 = "01/07/2013"
date4 = "07/07/2013"


datelist = [date1, date2, date3]

for j in datelist:
     if j <= date4:
          print j

如果我运行上面的代码,我得到的是date3,而不是date1或date2。我想我需要让系统意识到这是个约会,我不知道该怎么做。有人能帮忙吗?

谢谢


Tags: 代码inforif系统约会print意识
3条回答

您可以使用datetime模块:

>>> from datetime import datetime
>>> d = datetime.strptime(date4, '%d/%m/%Y')
>>> for j in datelist:
...     d1 = datetime.strptime(j, '%d/%m/%Y')
...     if d1 <= d:
...         print j
...         
20/06/2013
25/06/2013
01/07/2013

你在比较字符串,而不是日期。您应该使用基于日期的对象类型,例如datetime

How to compare two dates?

您可以使用^{}模块将它们全部转换为datetime对象。您正在比较示例中的字符串:

>>> from datetime import datetime
>>> date1 = datetime.strptime(date1, "%d/%m/%Y")
>>> date2 = datetime.strptime(date2, "%d/%m/%Y")
>>> date3 = datetime.strptime(date3, "%d/%m/%Y")
>>> date4 = datetime.strptime(date4, "%d/%m/%Y")
>>> datelist = [date1, date2, date3]
>>> for j in datelist:
...      if j <= date4:
...           print(j.strftime('%d/%m/%Y'))
... 
20/06/2013
25/06/2013
01/07/2013

相关问题 更多 >