社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python比较两个日期的多种方法!

CDA数据分析师 • 3 年前 • 289 次点击  


作者:快快

来源:快学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(2022222)
second_date = datetime.date(202231)

print(first_date 

输出:

True

我们会发现datetime模块可以使用比较运算符<>来比较两个日期。上述代码中比较的是日期对象,如果换成日期时间对象也同样可以这样比较。

在交互式环境中输入如下命令:

import datetime

first_date = datetime.datetime(20222221250)
second_date = datetime.datetime(2022311250)

print(first_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中时间处理的不同模块、不同函数有很多可以总结的。




 

点这里👇关注我,记得标星哦~

推荐阅读



 

CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/136908
 
289 次点击