• Python怎么计算时间差(含代码实例)


    Python计算时间差的方法:
    首先引入datetime包;然后通过(time_2_struct - time_1_struct)方式计算出同一天情形下的时间差或者不同天的时间差即可。

    代码讲解
    Python求时间差主要是用的datetime包,包括同一天情形下的时间差和不同天情形下的时间差。

    1.导入需要的包

    from datetime import datetime, date
    

    2. 同一天情形下的时间差(秒)seconds ,分钟由秒数除以60即可

    我们举两个例子,2017-07-17 06:03:00和2017-07-17 06:06:00之间的时间间隔:

    1. from datetime import datetime, date
    2. time_1='2017-07-17 06:03:00'
    3. time_2='2017-07-17 06:06:00'
    4. time_1_struct = datetime.strptime(time_1, "%Y-%m-%d %H:%M:%S")
    5. time_2_struct = datetime.strptime(time_2, "%Y-%m-%d %H:%M:%S")
    6. seconds = (time_2_struct - time_1_struct).seconds
    7. seconds

    我们的结果为:

    180
    

    我们分别看一下time_1_structtime_2_struct

    (datetime.datetime(2017, 7, 17, 6, 3), datetime.datetime(2017, 7, 17, 6, 6))
    

    3. 不同天情形下的时间差(也可计算同一天情形下的时间差),total_seconds

    1. # 不同天的时间差
    2. time_1 = '2017-07-17 08:00:00'
    3. time_2 = '2017-07-19 08:00:00'
    4. time_1_struct = datetime.strptime(time_1, "%Y-%m-%d %H:%M:%S")
    5. time_2_struct = datetime.strptime(time_2, "%Y-%m-%d %H:%M:%S")
    6. # 来获取时间差中的秒数。注意,seconds获得的秒只是时间差中的小时、分钟和秒部分,没有包含天数差,total_seconds包含天数差
    7. # 所以total_seconds两种情况都是可以用的
    8. total_seconds = (time_2_struct - time_1_struct).total_seconds()
    9. total_seconds
    172800.0
    

    我们换成小时:

    1. hours=total_seconds/3600
    2. hours
    48.0
    

    4. 只有时间time没有日期时,求时间差先可以加上一个相同的日期,再求时间差,datetime.combine 方法

    1. # 只有时间time没有日期时,求时间差先可以加上一个相同的日期,再求时间差
    2. # date.min能表示的最小日期
    3. # date.max能表示的最大日期
    4. # date.today()返回一个当前日期对象
    5. # datetime.combine:根据所给的date和time创建一个datetime对象
    6. time_1 = '08:00:00'
    7. time_2 = '09:00:00'
    8. time_1_struct = datetime.strptime(time_1,"%H:%M:%S")
    9. time_2_struct = datetime.strptime(time_2, "%H:%M:%S")
    10. time_sub = datetime.combine(date.min, time_2_struct.time()) - datetime.combine(date.min, time_1_struct.time())
    11. print('----- 与最小日期结合: ------')
    12. print(time_sub.seconds/60)
    13. time_sub = datetime.combine(date.today(), time_2_struct.time()) - datetime.combine(date.today(), time_1_struct.time())
    14. print('----- 与当天日期结合: ------')
    15. print(time_sub.seconds/60)
    16. print(time_sub.total_seconds()/60)
    1. ----- 与最小日期结合: ------
    2. 60.0
    3. ----- 与当天日期结合: ------
    4. 60.0
    5. 60.0

  • 相关阅读:
    NETRCA: AN EFFECTIVE NETWORK FAULT CAUSE LOCALIZATION之论文阅读
    2022年全球市场中性耐候硅酮密封胶总体规模、主要生产商、主要地区、产品和应用细分研究报告
    JAVA学习笔记
    【Vue3-Vite】Vite配置--路径别名配置
    工厂方法模式 创建型模式之四
    OpenCV实现视频的读取、显示、保存
    适合小企业的CRM有哪五点要求
    区间信息维护与查询【线段树 】 - 原理1 线段树的基本操作
    权限 chmod
    Word的只读模式和限制编辑有区别吗?如何设置和取消?
  • 原文地址:https://blog.csdn.net/fanfangyu/article/details/133992825