Python比较两个日期的两种方法详解
作者:快快 发布时间:2023-12-25 03:52:17
之前我们曾经分享过: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(时间)模块我们后续还会详细介绍它们的小知识点。
来源:https://mp.weixin.qq.com/s/zjHbne_FZqvk9Anhe9rXew


猜你喜欢
- 当我写下如下sql语句时,我得到了输入@c参数时想得到的结果集。select * from @tb t where t.id in (sel
- 多边形选区概述多边形选区是一种常见的对象选择方式,在一个子图中,单击鼠标左键即构建一个多边形的端点,最后一个端点与第一个端点重合即完成多边形
- 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库
- 由于本人经常装系统,每次装完系统之后都要重新安装一些软件,安装软件的时候又要上网查找安装的教程,比较麻烦,所以自己整理了MySQL5.7.2
- 一、复制的原理MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录
- Django Form 实时从数据库中获取数据 ,具体内容如下所示:修改 models.py 添加class UserType(models
- 阅读上一篇教程:WEB2.0网页制作标准教程(10)自适应高度布局初步搭建起来,我开始填充里面的内容。首先是定义logo图片:样式表:#lo
- 一、python3的安装建议安装python3,python2在未来将不再维护。python官方下载地址https://www.python
- 效果图代码<template> <div class="outWrap"> &nbs
- 前言动态生成表格是前端开发中非常重要的内容,常常是后端返回数据(大多是json类型),我们前端通过js循环来动态添加,所以这部分内容是十分重
- 创建列表list( ) # 创造列表list(可迭代对象)# 将可迭代对象创造成列表切片索引:列表[a:b]切片索引赋值:列表[切片] =
- 误区 #29:可以通过对堆建聚集索引再DROP后进行堆上的碎片整理Nooooooooooooo!!! &
- 使用Python绘制正态分布曲线,借助matplotlib绘图工具;#-*-coding:utf-8-*-"""
- 天极网软件频道的图片切换特效,完全是由XHTML+CSS+JS实现的图片切换特效,弄了好半天啊!!如果您使用或者转载请别忘了加我的一个连接啊
- 应用场景1.需要将大型MP3文件切割成较小的部分以便上传或发送。2.需要从MP3文件中提取特定的音频片段,以便用于其他目的。3.需要快速制作
- 介绍:SQL Server 2008变更数据捕获SQL Server 2008的CDC函数读取激活了CDC的每个表所关联的事务日志来记录系统
- Simhash的算法简单的来说就是,从海量文本中快速搜索和已知simhash相差小于k位的simhash集合,这里每个文本都可以用一个sim
- 代码如下:<%@ Language=VBScript %> <% Dim 
- vue单页开发时经常需要父子组件之间传值,自己用过但是不是很熟练,这里我抽空整理了一下思路,写写自己的总结。GitHub地址:https:/
- 从前有三只小猪,长大自立了分别造房子住。老大搬来草堆堆出草屋,老二搬来木头搭出木屋,老三搬来砖头,砌墙,造烟囱,造出了坚固的砖房。一天晚上大