我是靠谱客的博主 仁爱砖头,最近开发中收集的这篇文章主要介绍15.4.1 timedelta 数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

datetime 模块还提供了 timedelta 数据类型,它表示一段时间,而不是一个时刻。
在交互式环境中输入以下代码:


➊  >>>  delta  =  datetime.timedelta(days=11,  hours=10,  minutes=9,  seconds=8)
➋  >>>  delta.days,  delta.seconds,  delta.microseconds
(11,  36548,  0)
>>>  delta.total_seconds()
986948.0
>>>  str(delta)
'11  days,  10:09:08'

要创建 timedelta 对象,就用 datetime.timedelta()函数。datetime.timedelta()函数接受关键字参数 
weeks、days、hours、minutes、seconds、milliseconds 和 microseconds。没有 month 和 year 
关键字参数,因为“月”和“年”是可变的时间,依赖于特定月份或年份。timedelta 对象拥有的总时间以天、秒、微秒来表示。这些数字分别保存在 days、seconds 和 microseconds 
属性中。total_seconds()方法返回只以秒表示的时间。将一个 timedelta 对象传入 str(),将返回格式良好的、人类可读的字符串表示。
在这个例子中,我们将关键字参数传入 datetime.delta(),指定 11 天、10 小时、 9 分和 8 秒的时间,将返回的 timedelta 对象保存在 delta 
中➊。该 timedelta 对象的 days 属性为 11,seconds 属性为 36548(10 小时、9 分钟、8 秒,以秒表示)➋。调


用total_seconds()告诉我们,11 天、10 小时、9 分和 8 秒是 986948 秒。最后,将这个
timedelta 对象传入 str(),返回一个字符串,明确解释了这段时间。
算术运算符可以用于对 datetime 值进行日期运算。例如,要计算今天之后 1000
天的日期,在交互式环境中输入以下代码:
>>>  dt  =  datetime.datetime.now()
>>>  dt
datetime.datetime(2015,  2,  27,  18,  38,  50,  636181)
>>>  thousandDays  =  datetime.timedelta(days=1000)
>>>  dt  +  thousandDays
datetime.datetime(2017,  11,  23,  18,  38,  50,  636181)
首先,生成表示当前时刻的 datetime 对象,保存在 dt 中。然后生成一个timedelta对象,表示 1000 天,保存在 thousandDays 中。dt 与 thousandDays 
相加,得到一个 datetime 对象,表示现在之后的 1000 天。Python 将完成日期运算,弄清楚 2015 年 2 月 27 日之后的 1000 天,将是 2017 年 11 月 23 
日。这很有用,因为如果要从一个
给定的日期计算 1000  天之后,需要记住每个月有多少天,闰年的因素和其他棘手的细节。datetime 模块为你处理所有这些问题。
利用+和-运算符,timedelta 对象与 datetime 对象或其他 timedelta 对象相加或相减。利用*和/运算符,timedelta  
对象可以乘以或除以整数或浮点数。在交互式环境中输入以下代码:


➊  >>>  oct21st  =  datetime.datetime(2015,  10,  21,  16,  29,  0)
➋  >>>  aboutThirtyYears  =  datetime.timedelta(days=365  *  30)
>>>  oct21st
datetime.datetime(2015,  10,  21,  16,  29)
>>>  oct21st  -  aboutThirtyYears
datetime.datetime(1985,  10,  28,  16,  29)
>>>  oct21st  -  (2  *  aboutThirtyYears)
datetime.datetime(1955,  11,  5,  16,  29)

这里,我们生成了一个 DateTime 对象,表示 2015 年 10 月 21 日➊,以及一个 timedelta 对象,表示大约 30 年的时间(我们假设每年为 365 
天)➋。从 oct21st 中减去 aboutThirtyYears,我们就得到一个 datetime 对象,表示 2015 年 10 月 21 日前 30年的一天。从 
oct21st 中减去 2 * aboutThirtyYears,得到一个 datetime 对象,表示 2015年 10 月 21 日之前 60 年的一天。
 

最后

以上就是仁爱砖头为你收集整理的15.4.1 timedelta 数据类型的全部内容,希望文章能够帮你解决15.4.1 timedelta 数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部