datetime.timedelta对象代表两个时间之间的的时间差,两个date或datetime对象相减时可以返回一个timedelta对象。
构造函数:
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
所有参数可选,且默认都是0,参数的值可以是整数,浮点数,正数或负数。
内部只存储days,seconds,microseconds,其他参数的值会自动按如下规则抓转换:
- 1 millisecond(毫秒) 转换成 1000 microseconds(微秒)
- 1 minute 转换成 60 seconds
- 1 hour 转换成 3600 seconds
- 1 week转换成 7 days
三个参数的取值范围分别为:
- 0 <= microseconds < 1000000
- 0 <= seconds < 3600*24 (the number of seconds in one day)
- -999999999 <= days <= 999999999
如果任意参数是float,且小数点后含有microseconds部分,那么microseconds的值为所有参数的微秒部分的总和(四舍五入)如:
>>> datetime.timedelta(hours=1.232,seconds=20).microseconds 200000 >>> datetime.timedelta(hours=1.232,seconds=20.3).microseconds 500000
支持的操作有:
1 = t2 + t3 | 两个timedelta对象相加,同时满足 t1-t2 == t3 and t1-t3 == t2 为True |
t1 = t2 - t3 | 两个timedelta对象相减, 同时满足 t1 == t2 - t3 and t2 == t1 + t3 为True |
t1 = t2 * i or t1 = i * t2 | timedelta对象分别乘以i 同时满足 t1 // i == t2 为True, 且 i != 0 |
t1 = t2 // i | 向下取整,余数部分被丢弃 |
+t1 | 返回和t1相同值的timedelta对象 |
-t1 | 取反操作,等价于timedelta(-t1.days, -t1.seconds, -t1.microseconds)和 t1* -1 |
abs(t) | 绝对值,等价于: +t 当 t.days >= 0, -t 当 t.days < 0 |
str(t) | 返回字符串,格式为: [D day[s], ][H]H:MM:SS[.UUUUUU] |
repr(t) | 返回字符串,格式为: datetime.timedelta(D[, S[, U]]) |
此外,timedelta和可以和date,datetime对象进行加减操作,如:
>>> datetime.datetime.now() datetime.datetime(2013, 5, 23, 10, 49, 27, 182057) >>> datetime.datetime.now()+datetime.timedelta(2) datetime.datetime(2013, 5, 25, 10, 49, 29, 385559)
Python2.7新增了方法:
timedelta.total_seconds()
用于计算秒数。等价于:(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
实例1:
'''时间d距离now()的长度,比如:1分钟前,1小时前,1月前,1年前'''
# -*- encoding=UTF-8 -*- import datetime def timebefore(d): chunks = ( (60 * 60 * 24 * 365, u'年'), (60 * 60 * 24 * 30, u'月'), (60 * 60 * 24 * 7, u'周'), (60 * 60 * 24, u'天'), (60 * 60, u'小时'), (60, u'分钟'), ) #如果不是datetime类型转换后与datetime比较 if not isinstance(d, datetime.datetime): d = datetime.datetime(d.year,d.month,d.day) now = datetime.datetime.now() delta = now - d #忽略毫秒 before = delta.days * 24 * 60 * 60 + delta.seconds #python2.7直接调用 delta.total_seconds() #刚刚过去的1分钟 if before <= 60: return u'刚刚' for seconds,unit in chunks: count = before // seconds if count != 0: break return unicode(count)+unit+u"前"
实例2:
‘’‘当前的时间上加一天或一年减一天等操作’‘’
#!/usr/bin/env python # -*- coding:utf-8 -*- from datetime import datetime,timedelta now = datetime.now() yestoday = now - timedelta(days=1) tommorow = now + timedelta(days=1) next_year = now + timedelta(days = 365)
参考:http://docs.python.org/2/library/datetime.html
相关推荐
datetime 模块——timedelta类;timedelta类: datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0) timedelta类是用来计算二个datetime对象的差值的。此类中包含如下属性: 1...
本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...
本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...
本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...
本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...
timedelta类 python中datetime的用法全文共3页,当前为第1页。 timedelta类表示两个日期或时间之间的差值。它可以用来计算时间间隔、日期加减等操作。timedelta类的构造函数接受三个参数:days、
python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差。 下面我们...
Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...
本文实例讲述了python计算N天之后日期的方法。分享给大家供大家参考。...d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() 输出结果如下: 2015-02-18 16:49:28.362000 Fri Feb 18 16:49:2
具体代码如下所示: # 时间的替换 ...res1 = today + datetime.timedelta(days=1,minutes=60) print('增加的时间为res:',res1) res0 = datetime.datetime.now() print('未格式化时间res0:',res0) # 将时
无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有...yesterday = today - datetime.timedelta(d
Python matplotlib plotly绘制图表详解 绘制图表详解 ⽬录 ⽬录 ⼀、整理数据 ⼆、折线图 三、散点图 四、饼图 五、柱形图 六、点图(设置多个go对象) 七、2D密度图 ⼋、简单3D图 ⼀、整理数据 ⼀、整理数据 以300...
该模块提供了五种核心对象:datetime时间日期类型,date日期类型,time时间类型,tzinfo时区类型,timedelta时间差类型,今天为大家介绍一下datetime模块的具体使用方法与python日期时间计算与比较的相关实例 一、Python...
date、time、datetime、tzinfo、timedelta 等等。 有天我遇到这样的需求,想获取当前月的前一个月是几月,假设本月是2018年1月,那么上个月就是2017年12月,大约要经过这么几个步骤 >>> import datetime # 1. 获取...
from datetime import timedelta from temporal . activity_method import activity_method from temporal . workerfactory import WorkerFactory from temporal . workflow import workflow_method , Workflow , ...
Python 的标准库和其他一些低级模块具有近乎完整的日期、时间和时区功能,但从可用性角度来看效果不佳:模块太多:日期时间、时间、日历、dateutil、pytz 等等类型:日期、时间、日期时间、tzinfo、timedelta、...
netcdf是气候数据中的主流格式,当涉及到大范围的全球数万个格网点数据时,使用python脚本可以较快地读取与处理。 import netCDF4 from netCDF4 import Dataset import numpy as np import sys import os #计算日期...
本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: import datetime from datetime import timedelta now = datetime.datetime.now() # ...
时区感知datetime和timedelta对象 相对进口 Mypy类型检查 该项目的主要灵感来自于以下项目,并借鉴了以下方面的功能: 动机 之所以存在这个项目,是因为我对用于Python的正式Google protoc插件的状态不满意。 不...
本文实例讲述了python执行等待程序直到第二天零点的方法。分享给大家供大家参考。具体分析如下: ... tomorrow = datetime.datetime.replace(datetime.datetime.now() + datetime.timedelta(days=1), hour