当前位置:   article > 正文

【Python】timedelta类详解

timedelta

timedelta类表示时间差,可以直接实例化得到,也可以由两个datetime类型的数据做差得到

导入

from datetime import timedelta
  • 1

参数

实例化timedelta类时参数依次是:
days, seconds, microseconds, milliseconds, minutes, hours, weeks
所以如果你想实例化1天零6个小时的时间差对象需要指明参数:

td = timedelta(days=1, hours=6)
print(td)
  • 1
  • 2

输出:
在这里插入图片描述

属性

timedelta一般是由两个datetime类型的数据做差引入的,所以下面的例子中均在这样的上下文中讲解timedelta对象

  1. days:返回时间差的天数
    例:

    ini_time_str = '2020/8/3 23:00:51'
    end_time_str = '2020/9/1 7:48:50'
    ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
    end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
    print((end_time-ini_time).days)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:
    在这里插入图片描述

  2. seconds:返回时间差的秒数
    例:

    ini_time_str = '2020/8/3 23:00:51'
    end_time_str = '2020/9/1 7:48:50'
    ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
    end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
    print((end_time-ini_time).seconds)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:
    在这里插入图片描述

  3. microseconds:返回时间差的毫秒数
    例:

    ini_time_str = '2020/8/3 23:00:51'
    end_time_str = '2020/9/1 7:48:50'
    ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
    end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
    print((end_time-ini_time).microseconds)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:
    在这里插入图片描述
    这里大家应该发现了,以上三个属性输出的值是timedelta对应位置的分量,而不是将时间差换算为某单位后的结果,为了便于大家理解,这里将以上例子中的timedelta对象直接输出:
    在这里插入图片描述
    可以看到,由于timedelta对象的microseconds位置的分量是0,所以第三个例子的输出为0

  4. min:返回timedelta下限(无论timedelta对象是什么返回都一样)
    例:

    print(timedelta.min)
    # 接上例,print((end_time-ini_time).min)返回相同的结果
    
    • 1
    • 2

    输出:
    在这里插入图片描述

  5. max:返回timedelta上限(无论timedelta对象是什么返回都一样)
    例:

    print(timedelta.max)
    
    • 1

    输出:
    在这里插入图片描述

  6. resolution:返回timedelta的精度(无论timedelta对象是什么返回都一样)
    例:

    print(timedelta.resolution)
    
    • 1

    输出:
    在这里插入图片描述

方法

total_seconds:返回将时间差转换为秒的结果
例:

ini_time_str = '2020/8/3 23:00:51'
end_time_str = '2020/9/1 7:48:50'
ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
print((end_time-ini_time).total_seconds())
  • 1
  • 2
  • 3
  • 4
  • 5

输出:
在这里插入图片描述

timedelta对象只有这一个方法,所以如果你想将时间差转换为其他单位需要乘以相应的系数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/66482
推荐阅读
相关标签
  

闽ICP备14008679号