首页 > 代码库 > Python中时间的处理之——timedelta篇

Python中时间的处理之——timedelta篇

 
#! /usr/bin/python
# coding=utf-8

from datetime import datetime,timedelta

"""
timedelta代表两个datetime之间的时间差
"""
now = datetime.now()
past = past = datetime(2010,11,12,13,14,15,16)

timespan = now - past
#这会得到一个负数
past - now
attrs = [
("days",""),( seconds‘,""),( microseconds‘,"毫秒")
#(‘min‘,"最小"),( ‘max‘,"最大"),
]
for k,v in attrs:
    "timespan.%s = %s #%s" % (k,getattr(timespan, k),v)

"""
总共相差的秒数
"""
timespan.total_seconds()

"""
实例化一个timespan
请注意它的参数顺序
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
"""
timespan = timedelta(days=1)
now - timespan #返回的是datetime型
now + timespan

timespan * 2 #还可以乘哦。代表二倍
timespan / 13

#增加一个月
from calendar import monthrange
now + timedelta(days=monthrange(start.year,start.month)[1])
 

 

实例1:
‘‘‘时间d距离now()的长度,比如:1分钟前,1小时前,1月前,1年前‘‘‘
 
Python代码  技术分享
  1. # -*- encoding=UTF-8 -*-  
  2. import datetime  
  3. def timebefore(d):  
  4.      chunks = (  
  5.                        (60 * 60 * 24 * 365, u‘年‘),  
  6.                        (60 * 60 * 24 * 30, u‘月‘),  
  7.                        (60 * 60 * 24 * 7, u‘周‘),  
  8.                        (60 * 60 * 24, u‘天‘),  
  9.                        (60 * 60, u‘小时‘),  
  10.                        (60, u‘分钟‘),  
  11.      )  
  12.      #如果不是datetime类型转换后与datetime比较  
  13.     if not isinstance(d, datetime.datetime):  
  14.            d = datetime.datetime(d.year,d.month,d.day)  
  15.     now = datetime.datetime.now()  
  16.     delta = now - d  
  17.     #忽略毫秒  
  18.     before = delta.days * 24 * 60 * 60 + delta.seconds  #python2.7直接调用 delta.total_seconds()  
  19.     #刚刚过去的1分钟  
  20.     if before <= 60:  
  21.            return u‘刚刚‘  
  22.     for seconds,unit in chunks:  
  23.            count = before // seconds  
  24.            if count != 0:  
  25.                  break  
  26.     return unicode(count)+unit+u"前"  

 实例2:

‘’‘当前的时间上加一天或一年减一天等操作’‘’

 

Python代码  技术分享
  1. #!/usr/bin/env python  
  2. # -*- coding:utf-8 -*-  
  3.   
  4. from datetime import datetime,timedelta  
  5.   
  6. now = datetime.now()  
  7.   
  8. yestoday = now - timedelta(days=1)  
  9. tommorow = now + timedelta(days=1)  
  10.   
  11. next_year = now + timedelta(days = 365)  

 

Python中时间的处理之——timedelta篇