Python比较两个日期的两种方法详解
作者:快快
之前我们曾经分享过:Python获取某一日期是“星期几”的6种方法!实际上,在我们使用Python处理日期/时间的时候,经常会遇到各种各样的问题。今天我们就来探讨另一个问题,如何用Python比较两个日期?
datetime
如果需要用Python处理日期和时间,大家肯定会先想到datetime、time、calendar等模块。在这其中,datetime模块主要是用来表示日期时间的,就是我们常说的年月日/时分秒。
datetime模块中常用的类:
类名 | 功能说明 |
---|---|
date | 日期对象,常用的属性有year,month,day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour,minute,second,microsecond |
timedelta | 时间间隔,即两个时间点之间的长度 |
tzinfo | 时区信息对象 |
那么,如何用datetime模块比较两个日期?
在交互式环境中输入如下命令:
import datetime first_date = datetime.date(2022, 2, 22) second_date = datetime.date(2022, 3, 1) print(first_date < second_date)
输出:
True
我们会发现datetime
模块可以使用比较运算符<
或>
来比较两个日期。上述代码中比较的是日期对象,如果换成日期时间对象也同样可以这样比较。
在交互式环境中输入如下命令:
import datetime first_date = datetime.datetime(2022, 2, 22, 12, 5, 0) second_date = datetime.datetime(2022, 3, 1, 12, 5, 0) print(first_date < second_date)
输出:
True
strptime
前面示例代码中,其实比较的都是日期对象/日期时间对象。但如果用户输入的、或批量导入的日期和时间是字符串格式,我们在进行比较的第一步就是先将str转换为datetime。
至于转换方法也非常简单,只需要通过datetime.strptime
即可实现。
在交互式环境中输入如下命令:
import datetime strftime1 = datetime.datetime.strptime("2022-02-22", "%Y-%m-%d") strftime2 = datetime.datetime.strptime("2022-03-01", "%Y-%m-%d") print("日期2022-02-22大于2022-03-01:", strftime1 > strftime2)
输出结果:
另外time模块中也有strptime()
函数,可以根据指定的格式把时间字符串解析为时间元组,利用这一特性也可以比较两个日期。
在交互式环境中输入如下命令:
import time strftime1 = time.strptime("2022-02-22", "%Y-%m-%d") strftime2 = time.strptime("2022-03-01", "%Y-%m-%d") print(strftime1) print(strftime2) print("日期2022-02-22大于2022-03-01:", strftime1 > strftime2)
输出结果:
以上,便是如何用Python比较两个日期的几个小方法。实际上,Python中时间处理的不同模块、不同函数有很多可以总结的。
calendar(日历)模块、time(时间)模块我们后续还会详细介绍它们的小知识点。
到此这篇关于Python比较两个日期的两种方法详解的文章就介绍到这了,更多相关Python比较日期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!