Python之日期与时间处理模块(date和datetime)(6)

timedelta对象表示连个不同时间之间的差值。如果使用time模块对时间进行算术运行,只能将字符串格式的时间 和 struct_time格式的时间对象 先转换为时间戳格式,然后对该时间戳加上或减去n秒,最后再转换回struct_time格式或字符串格式,这显然很不方便。而datetime模块提供的timedelta类可以让我们很方面的对datetime.date, datetime.time和datetime.datetime对象做算术运算,且两个时间之间的差值单位也更加容易控制。
这个差值的单位可以是:天、秒、微秒、毫秒、分钟、小时、周。

datetime.timedelta类的定义 class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0)

所有参数都是默认参数,因此都是可选参数。参数的值可以是整数或浮点数,也可以是正数或负数。内部值存储days、seconds 和 microseconds,其他所有参数都将被转换成这3个单位:

1毫秒转换为1000微秒

1分钟转换为60秒

1小时转换为3600秒

1周转换为7天

然后对这3个值进行标准化,使得它们的表示是唯一的:

microseconds : [0, 999999]

seconds : [0, 86399]

days : [-999999999, 999999999]

类属性 类属性名称描述
timedelta.min   timedelta(-999999999)  
timedelta.max   timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)  
timedelta.resolution   timedelta(microseconds=1)  
实例方法和属性 实例方法/属性名称描述
td.days   天 [-999999999, 999999999]  
td.seconds   秒 [0, 86399]  
td.microseconds   微秒 [0, 999999]  
td.total_seconds()   时间差中包含的总秒数,等价于: td / timedelta(seconds=1)  
方法/属性描述
datetime.datetime.now()   返回当前本地时间(datetime.datetime对象实例)  
datetime.datetime.fromtimestamp(timestamp)   返回指定时间戳对应的时间(datetime.datetime对象实例)  
datetime.timedelta()   返回一个时间间隔对象,可以直接与datetime.datetime对象做加减操作  
实例 >>> import datetime >>> >>> datetime.timedelta(365).total_seconds() # 一年包含的总���数 31536000.0 >>> dt = datetime.datetime.now() >>> dt + datetime.timedelta(3) # 3天后 datetime.datetime(2017, 2, 8, 9, 39, 40, 102821) >>> dt + datetime.timedelta(-3) # 3天前 datetime.datetime(2017, 2, 2, 9, 39, 40, 102821) >>> dt + datetime.timedelta(hours=3) # 3小时后 datetime.datetime(2017, 2, 5, 12, 39, 40, 102821) >>> dt + datetime.timedelta(hours=-3) # 3小时前 datetime.datetime(2017, 2, 5, 6, 39, 40, 102821) >>> dt + datetime.timedelta(hours=3, seconds=30) # 3小时30秒后 datetime.datetime(2017, 2, 5, 12, 40, 10, 102821) 五、时间格式码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0c4e7d95d6e7c6678362238486792fc9.html