python内置模块datetime.timedelta计算时间间隔示例代码

 更新时间:2025年04月14日 09:46:28   作者:科雷learning  
Python的datetime模块提供了处理日期和时间的功能,包括datetime.date、datetime.time、datetime.datetime、datetime.timedelta等类,timedelta用于表示时间间隔,支持日期和时间的加减运算,文中给出了详细的代码示例,需要的朋友可以参考下

Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。

使用datetime模块

要使用 datetime模块,直接导入它即可。

import datetime 或者 from datetime import time,datetime,date,timedelta

timedelta类

datetime.timedelta用于表示两个日期或时间之间的差异(即时间间隔)。它通常用于日期的算术运算,比如计算一个日期加上或减去一定的时间间隔后的新日期。

timedelta 对象初始化参数包含天(day)、秒(second)、微秒(microsecond)、毫秒(milliseconds、分钟(minutes)、小时(hours)、星期(weeks)时间单位,但是上述参数初始化时星期会转化为天数,分钟和小时会转为秒数,毫秒会转为微秒,如下红框所示:

该类初始化后,可直接调用如下的属性函数获得对应的参数值

举例:timedelta类按照如下参数初始化
timedelta_ins= timedelta(days=10, seconds=30,microseconds=1000,
                         milliseconds=1,minutes=1, hours=1,weeks=1)
print(timedelta_ins.days)
print(timedelta_ins.seconds)
print(timedelta_ins.microseconds)

执行结果:

17

3690

2000

根据上述红框中的计算公式验算如下:

days = 10 + 1*7 = 17

seconds= 30 + 1*60 +1*60 = 3690

microseconds = 1000 + 1*1000 = 2000

1 timedelta配合datetime.date进行日期的加减运算

在datetime.date(只涉及年,月,日)日期基础上计算n天前或者n天后对应的日期。

举例:

  • 计算当前日期在1个星期后对应的日期
date_ins = date.today()
print(date_ins + timedelta(weeks=1))
结果:2024-09-21
  • 计算某个日期在50天后对应的日期
date_ins = datetime.date(2024,9,1)
print(date_ins + datetime.timedelta(days=50))
结果:2024-10-21
  • 计算某个日期在50天前对应的日期
date_ins = datetime.date(2024,9,1)
print(date_ins + datetime.timedelta(days=-50))
结果:2024-07-13
  • 计算某个日期在7个星期后对应的日期
date_ins = date(2024,9,1)
print(date_ins + timedelta(weeks=7))
结果:2024-10-20
  • 计算某个日期在435个小时后对应的日期
date_ins = date(2024,9,1)
print(date_ins + timedelta(hours=435))
结果:2024-09-19

2 timedelta配合datetime.daterime进行日期的加减运算

在datetime.datetime(涉及年,月,日,小时,分钟,秒,微秒)时间基础上计算某个时间后对应的时间。

举例:

  • 计算当前时间在50天后对应的时间
date_ins = datetime.today()
print(date_ins + timedelta(days=50))
结果:2024-11-03 10:11:02.663574
  • 计算某个时间在50天2小时后对应的时间
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
                    second=25,microsecond=10000)
print(date_ins + timedelta(days=50,hours=2))
结果:2024-10-25 23:34:25
  • 计算某个时间在50天前对应的时间再加上2小时20分
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
                    second=25,microsecond=10000)
print(date_ins + timedelta(days=-50,hours=2,minutes=20))
结果:2024-07-17 23:54:25
  • 计算某个时间加上1小时10秒1万微秒后对应的时间
from datetime import datetime,timedelta
date_ins = datetime(2024,month=9,day=5,hour=21,minute=34,
                    second=25,microsecond=10000)
print(date_ins + timedelta(hours=1,seconds=10,microseconds=10000))
结果:2024-09-05 22:34:35.020000

datetime.datetime和 datetime.timedelta配合使用后,有很多种时间计算方式,此处不再一一列举。

3 timedelta类计算时间之差

不用配合detetime。datetime和 datetime.date类,timedelta类本身也可以计算两个时间的间隔

举例:实例化两个类对象,timedelta_ins1 时间大于timedelta_ins2

timedelta_ins1 = timedelta(hours=1,seconds=20,microseconds=10000,weeks=2)
timedelta_ins2 = timedelta(days=6,hours=23,seconds=10,microseconds=10000)
print(timedelta_ins1 - timedelta_ins2)

结果:7 days, 2:00:10

4 total_seconds()

该函数返回timedelta类初始化对象对应的秒数。计算公式如下:

举例:

timedelta_ins = timedelta(hours=1,seconds=10,microseconds=10000)
print(timedelta_ins.total_seconds())

结果:3610.01

5 比较时间大小

正因为timedelta类有__eq__,__lt__等魔法方法,所以具备大小比较的功能。

测试代码:实例化两个类对象,timedelta_ins1 时间大于timedelta_ins2

timedelta_ins1 = timedelta(hours=1,seconds=10,microseconds=10000,weeks=1)
timedelta_ins2 = timedelta(days=6,hours=23,seconds=10,microseconds=10000)
print(timedelta_ins1 < timedelta_ins2)

比较结果:False

总结

到此这篇关于python内置模块datetime.timedelta计算时间间隔的文章就介绍到这了,更多相关python datetime.timedelta计算时间间隔内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python常见的错误以及其解决方案

    Python常见的错误以及其解决方案

    这篇文章主要给大家介绍了关于Python常见的错误以及其解决方案的相关资料,学习python任重而道远,对于初学者来说,最难受的就是报错,本文总结了一些常见错误,需要的朋友可以参考下
    2023-08-08
  • Python一行代码实现快速排序的方法

    Python一行代码实现快速排序的方法

    排序算法是在高考或中考中出现频率最多的点,所以大家要掌握,今天小编给大家带来了通过Python一行代码实现快速排序的方法,感兴趣的朋友跟随小编一起看看吧
    2019-04-04
  • 解决安装pycharm后不能执行python脚本的问题

    解决安装pycharm后不能执行python脚本的问题

    今天小编就为大家分享一篇解决安装pycharm后不能执行python脚本的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python代码如何实现余弦相似性计算

    python代码如何实现余弦相似性计算

    这篇文章主要介绍了python代码如何实现余弦相似性计算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python异步编程入门教程指南

    Python异步编程入门教程指南

    Python作为一门流行的编程语言,提供了强大的异步编程支持,本文将深入探讨Python异步编程的基础概念、常用库以及实际应用,通过丰富的示例代码,助你更全面地理解和应用异步编程
    2024-01-01
  • python基于TCP实现的文件下载器功能案例

    python基于TCP实现的文件下载器功能案例

    这篇文章主要介绍了python基于TCP实现的文件下载器功能,结合具体实例形式分析了Python使用socket模块实现的tcp协议下载功能客户端与服务器端相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • python跨文件使用全局变量的实现

    python跨文件使用全局变量的实现

    这篇文章主要介绍了python跨文件使用全局变量的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 在Django中预防CSRF攻击的操作

    在Django中预防CSRF攻击的操作

    这篇文章主要介绍了在Django中预防CSRF攻击的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Pytorch统计参数网络参数数量方式

    Pytorch统计参数网络参数数量方式

    这篇文章主要介绍了Pytorch统计参数网络参数数量方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python文本终端GUI框架的使用方法

    Python文本终端GUI框架的使用方法

    Python中有几个流行的文本终端GUI框架,它们提供了创建命令行界面的便捷方法,这些框架使开发者能够构建交互式、用户友好的命令行应用程序,本文将介绍几个主要的Python文本终端GUI框架,展示它们的使用方法和示例代码,需要的朋友可以参考下
    2023-12-12

最新评论