`
lantian_123
  • 浏览: 1359081 次
  • 性别: 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

 
分享到:
评论

相关推荐

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

    datetime 模块——timedelta类;timedelta类: datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0) timedelta类是用来计算二个datetime对象的差值的。此类中包含如下属性: 1...

    Python-3.8.0a3.tgz

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    Python-3.8.0b2.tgz

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python-3.8.0a4.exe

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python-3.8.0b2-amd64.exe

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python中datetime的用法.docx

    timedelta类 python中datetime的用法全文共3页,当前为第1页。 timedelta类表示两个日期或时间之间的差值。它可以用来计算时间间隔、日期加减等操作。timedelta类的构造函数接受三个参数:days、

    python时间日期函数与利用pandas进行时间序列处理详解

    python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差。 下面我们...

    python3.6.5参考手册 chm

    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天之后日期的方法

    本文实例讲述了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

    python datetime时间格式的相互转换问题

    具体代码如下所示: # 时间的替换 ...res1 = today + datetime.timedelta(days=1,minutes=60) print('增加的时间为res:',res1) res0 = datetime.datetime.now() print('未格式化时间res0:',res0) # 将时

    Python3中常用的处理时间和实现定时任务的方法的介绍

    无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有...yesterday = today - datetime.timedelta(d

    Python(9).pdf

    Python matplotlib plotly绘制图表详解 绘制图表详解 ⽬录 ⽬录 ⼀、整理数据 ⼆、折线图 三、散点图 四、饼图 五、柱形图 六、点图(设置多个go对象) 七、2D密度图 ⼋、简单3D图 ⼀、整理数据 ⼀、整理数据 以300...

    Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    该模块提供了五种核心对象:datetime时间日期类型,date日期类型,time时间类型,tzinfo时区类型,timedelta时间差类型,今天为大家介绍一下datetime模块的具体使用方法与python日期时间计算与比较的相关实例 一、Python...

    Python使用一行代码获取上个月是几月

    date、time、datetime、tzinfo、timedelta 等等。 有天我遇到这样的需求,想获取当前月的前一个月是几月,假设本月是2018年1月,那么上个月就是2017年12月,大约要经过这么几个步骤 &gt;&gt;&gt; import datetime # 1. 获取...

    temporal-python-sdk

    from datetime import timedelta from temporal . activity_method import activity_method from temporal . workerfactory import WorkerFactory from temporal . workflow import workflow_method , Workflow , ...

    arrow:更好的 Python 日期时间操作类库-python

    Python 的标准库和其他一些低级模块具有近乎完整的日期、时间和时区功能,但从可用性角度来看效果不佳:模块太多:日期时间、时间、日历、dateutil、pytz 等等类型:日期、时间、日期时间、tzinfo、timedelta、...

    python读取与处理netcdf数据方式

    netcdf是气候数据中的主流格式,当涉及到大范围的全球数万个格网点数据时,使用python脚本可以较快地读取与处理。 import netCDF4 from netCDF4 import Dataset import numpy as np import sys import os #计算日期...

    python获取本周、上周、本月、上月及本季的时间代码实例

    本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: import datetime from datetime import timedelta now = datetime.datetime.now() # ...

    python-betterproto:干净,现代的Python 3.6+代码生成器和库,用于Protobuf 3和异步gRPC

    时区感知datetime和timedelta对象 相对进口 Mypy类型检查 该项目的主要灵感来自于以下项目,并借鉴了以下方面的功能: 动机 之所以存在这个项目,是因为我对用于Python的正式Google protoc插件的状态不满意。 不...

    python执行等待程序直到第二天零点的方法

    本文实例讲述了python执行等待程序直到第二天零点的方法。分享给大家供大家参考。具体分析如下: ... tomorrow = datetime.datetime.replace(datetime.datetime.now() + datetime.timedelta(days=1), hour

Global site tag (gtag.js) - Google Analytics