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
相关推荐
在这里,我们将重点讨论Python中的方法,因为Python在数据处理领域广泛应用且拥有丰富的库支持。 首先,我们需要了解日期和时间的基础知识。在Python中,日期和时间主要由内置的`datetime`模块处理。`datetime`模块...
Python的datetime模块是用于处理日期和时间的工具,其中包含了多种类,如date、time、datetime和timedelta。本篇文章将详细讲解timedelta类及其在测量程序编制中的应用。 timedelta类是datetime模块中用于表示两个...
在Python中获取指定日期范围内的每一天、每个月和每季度的方法,涉及到使用Python标准库中的datetime、timedelta以及calendar模块。具体来说,可以分为以下几点进行详细说明: 1. 获取指定日期范围内的每一天 为了...
在Python中获取昨天、今天、明天的开始与结束时间戳,首先需要使用到datetime模块来获取当前日期以及进行日期的运算。下面会详细解释整个过程以及所涉及到的函数和方法。 首先,我们使用datetime模块中的date类来...
本文详细介绍了Python中`datetime`模块中的`timedelta`类及其在日期时间运算中的应用。通过实例代码,读者可以直观地了解如何利用这些功能来进行日期和时间的计算。此外,还介绍了如何根据当前日期快速计算出前一天...
delete_threshold = datetime.timedelta(days=7) # 清理过期文件 for file in os.listdir(backup_folder): if os.path.isfile(os.path.join(backup_folder, file)): file_time = datetime.datetime.fromtimestamp...
Python编程语言以其简洁易懂的语法特性,深受程序员喜爱,尤其在教育和自动化领域应用广泛。在本篇文章中,我们将探讨如何使用Python实现七段数码管的显示效果以及倒计时功能,这对于学习嵌入式系统、图形界面设计...
首先,Python的`datetime`模块是最常用的时间处理模块,它包含了`date`、`time`、`datetime`、`timedelta`等类,可以方便地进行日期和时间的创建、格式化、比较和计算。 1. `date`类:表示一个日期,例如`date(2022...
### Python 计算时间的基本问题 #### 一、获取当前日期与时间 在 Python 中,我们经常需要处理日期和时间相关的任务,例如记录程序运行时间、进行日期计算等。Python 提供了 `datetime` 模块来帮助我们完成这些...
在Python编程语言中,时间处理是一项基础且重要的任务。它涉及到日期、时间和时间间隔的创建、比较、格式化以及各种操作。在这个主题中,我们将深入探讨Python中的时间比较及其相关概念,确保涵盖全面。 首先,...
本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...
after_returns = stock_data.loc[day.name + datetime.timedelta(days=1):day.name + datetime.timedelta(days=n_after)] if day['Cumulative_Return'] > 0 and after_returns['Cumulative_Return'].mean() day...
总结一下,Python的datetime模块通过datetime类和timedelta类提供了一套完整的日期和时间操作方案。datetime类用于表示具体的日期和时间点,而timedelta类则表示两个时间点间的间隔。通过减法操作,我们可以计算出两...
Python中的日期和时间处理是许多开发者在编程过程中经常会遇到的任务,尤其在数据分析、日志记录、计划任务等领域。"Maya"是一个强大的Python库,它为处理日期和时间提供了直观且用户友好的接口,旨在让这些操作变得...
Python 中的倒计时实现和 timedelta 对象的应用 Python 是一种高效的高级编程语言,广泛应用于各种领域,包括数据分析、人工智能、Web 开发等。其中,Python 的时间模块(time 模块)提供了多种功能,包括时间测量...
from datetime import timedelta from mixer.backend.django import mixer new_user = mixer.blend('auth.User', age=lambda: random.randint(18, 60)) ``` 此外,Mixer还支持批量生成数据,这对于快速填充测试...
在本项目中,我们探索如何使用Python编程语言创建一个假期倒计时程序,该程序能够显示剩余的天数、小时数、分钟数和秒数。这个实用的小工具可以帮助用户跟踪他们期待的假期,提高工作和学习的积极性。我们将深入讨论...
`timedeltafmt`库旨在简化Python内置的`datetime.timedelta`对象的输出,使其更易于阅读和理解。`datetime.timedelta`是一个用于表示两个日期或时间之间差值的类,它支持天数、小时、分钟、秒以及微秒的计算。然而,...
通过`datetime.datetime.now()`获取当前时间,`datetime.timedelta()`计算两个日期之间的差值,以及`datetime.datetime.strptime()`和`datetime.datetime.strftime()`进行日期字符串的解析和格式化。 2. **文件操作...