`
lantian_123
  • 浏览: 1370067 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Python timedelta

 
阅读更多
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

 
分享到:
评论

相关推荐

    计算两天之间的小时数.rar

    在这里,我们将重点讨论Python中的方法,因为Python在数据处理领域广泛应用且拥有丰富的库支持。 首先,我们需要了解日期和时间的基础知识。在Python中,日期和时间主要由内置的`datetime`模块处理。`datetime`模块...

    测量程序编制 - python 62格式化输出:datetime模块(timedelta类).pptx

    Python的datetime模块是用于处理日期和时间的工具,其中包含了多种类,如date、time、datetime和timedelta。本篇文章将详细讲解timedelta类及其在测量程序编制中的应用。 timedelta类是datetime模块中用于表示两个...

    python获取指定日期范围内的每一天,每个月,每季度的方法

    在Python中获取指定日期范围内的每一天、每个月和每季度的方法,涉及到使用Python标准库中的datetime、timedelta以及calendar模块。具体来说,可以分为以下几点进行详细说明: 1. 获取指定日期范围内的每一天 为了...

    Python获取昨天、今天、明天开始、结束时间戳的方法

    在Python中获取昨天、今天、明天的开始与结束时间戳,首先需要使用到datetime模块来获取当前日期以及进行日期的运算。下面会详细解释整个过程以及所涉及到的函数和方法。 首先,我们使用datetime模块中的date类来...

    python日期时间运算

    本文详细介绍了Python中`datetime`模块中的`timedelta`类及其在日期时间运算中的应用。通过实例代码,读者可以直观地了解如何利用这些功能来进行日期和时间的计算。此外,还介绍了如何根据当前日期快速计算出前一天...

    python自动备份mysql数据库,并删除七天前文件

    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实现七段数码管的显示效果以及倒计时功能,这对于学习嵌入式系统、图形界面设计...

    Python-Python轻松处理日期时间

    首先,Python的`datetime`模块是最常用的时间处理模块,它包含了`date`、`time`、`datetime`、`timedelta`等类,可以方便地进行日期和时间的创建、格式化、比较和计算。 1. `date`类:表示一个日期,例如`date(2022...

    python计算时间的基本问题

    ### Python 计算时间的基本问题 #### 一、获取当前日期与时间 在 Python 中,我们经常需要处理日期和时间相关的任务,例如记录程序运行时间、进行日期计算等。Python 提供了 `datetime` 模块来帮助我们完成这些...

    python 时间比较,很全面

    在Python编程语言中,时间处理是一项基础且重要的任务。它涉及到日期、时间和时间间隔的创建、比较、格式化以及各种操作。在这个主题中,我们将深入探讨Python中的时间比较及其相关概念,确保涵盖全面。 首先,...

    OverReact_python反转效应_python_

    after_returns = stock_data.loc[day.name + datetime.timedelta(days=1):day.name + datetime.timedelta(days=n_after)] if day['Cumulative_Return'] &gt; 0 and after_returns['Cumulative_Return'].mean() day...

    python-datetime-减法.doc

    总结一下,Python的datetime模块通过datetime类和timedelta类提供了一套完整的日期和时间操作方案。datetime类用于表示具体的日期和时间点,而timedelta类则表示两个时间点间的间隔。通过减法操作,我们可以计算出两...

    Python-Maya对人类友好的Python日期时间处理库

    Python中的日期和时间处理是许多开发者在编程过程中经常会遇到的任务,尤其在数据分析、日志记录、计划任务等领域。"Maya"是一个强大的Python库,它为处理日期和时间提供了直观且用户友好的接口,旨在让这些操作变得...

    元旦倒计时,对于其他长期的倒计时,可以用timedelta对象来测量直到未来某个时间点(生日? 周年纪念?)的天、时、分和秒数

    Python 中的倒计时实现和 timedelta 对象的应用 Python 是一种高效的高级编程语言,广泛应用于各种领域,包括数据分析、人工智能、Web 开发等。其中,Python 的时间模块(time 模块)提供了多种功能,包括时间测量...

    Python-Mixer一个测试fixtures替代库支持DjangoFlaskSQLAlchemyPeewee等

    from datetime import timedelta from mixer.backend.django import mixer new_user = mixer.blend('auth.User', age=lambda: random.randint(18, 60)) ``` 此外,Mixer还支持批量生成数据,这对于快速填充测试...

    基于python的假期倒计时(天、时、分、秒).zip

    在本项目中,我们探索如何使用Python编程语言创建一个假期倒计时程序,该程序能够显示剩余的天数、小时数、分钟数和秒数。这个实用的小工具可以帮助用户跟踪他们期待的假期,提高工作和学习的积极性。我们将深入讨论...

    Python库 | timedeltafmt-0.1.0.tar.gz

    `timedeltafmt`库旨在简化Python内置的`datetime.timedelta`对象的输出,使其更易于阅读和理解。`datetime.timedelta`是一个用于表示两个日期或时间之间差值的类,它支持天数、小时、分钟、秒以及微秒的计算。然而,...

    TimeLock(Python语言时间锁)

    通过`datetime.datetime.now()`获取当前时间,`datetime.timedelta()`计算两个日期之间的差值,以及`datetime.datetime.strptime()`和`datetime.datetime.strftime()`进行日期字符串的解析和格式化。 2. **文件操作...

    Python3编写实用脚本程序-下班倒计时.zip

    可以使用datetime模块的timedelta对象来表示两个时间点之间的差值。通过比较当前时间与下班时间,我们可以计算出剩余的工作时间。 此外,为了使脚本具有实用性,可能还需要将其集成到操作系统中,例如,可以设置...

Global site tag (gtag.js) - Google Analytics