在python中比较日期与当前日期

Compare date with current date in python

本问题已经有最佳答案,请猛点这里访问。

如何比较此格式的日期时间对象

"周四,2015年1月15日06:35:37格林尼治标准时间"与当前时间?


可以使用datetime模块将datetime字符串转换为datetimetime对象。然后在两个日期时间对象之间得到不同的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> from datetime import datetime
>>> a = datetime.strptime("Thu, 15 Jan 2015 06:35:37 GMT","%a, %d %b %Y %H:%M:%S GMT", )
>>> b = datetime.strptime("Fri, 16 Jan 2015 07:40:40 GMT","%a, %d %b %Y %H:%M:%S GMT", )
>>> c1 = b - a
>>> c1
datetime.timedelta(1, 3903)
>>> c1.days
1
>>> c1.total_seconds()
90303.0
>>> c1.seconds
3903
>>>

1
2
3
4
5
6
7
import time
from email.utils import parsedate_tz, mktime_tz

# Convert the input date string to"seconds since the epoch" (POSIX time)
timestamp = mktime_tz(parsedate_tz("Thu, 15 Jan 2015 06:35:37 GMT"))
# Compare it with the current time (ignoring leap seconds)
elapsed_seconds = time.time() - timestamp


最简单的方法是使用dateutil包。首先安装dateutil,然后:

1
2
from dateutil.parser import parse
parsed_time = parse("Thu, 15 Jan 2015 06:35:37 GMT")

然后您可以执行from datetime import datetime,并使用datetime.now()获取当前时间,您将拥有两个日期时间对象,您可以根据自己的喜好进行比较。

如果你不能使用dateutil,你仍然可以使用datetime.strptime(),但是你必须精确地指定日期字符串,这是非常费心的。在这种情况下,请参阅标准库文档。