python 之日期时间处理
##python时间操作一般使用time、datetime两个模块
对于time模块,时间的表示模式有3种
1、时间戳:time.time()
2、字符串: time.strftime('%Y%m%d')
3、struct_time格式: time.localtime()
如下所示:
1 #时间操作 2 >>> import time 3 >>> time.time() 4 1450336566.81052 5 >>> time.localtime() 6 time.struct_time(tm_year=2015, tm_mon=12, tm_mday=17, tm_hour=15, tm_min=16, tm_sec=14, tm_wday=3, tm_yday=351, tm_isdst=0) 7 >>> time.strftime('%Y%m%d %H%M%S') 8 '20151217 151632' 9 >>> time.strptime('20151212 121212','%Y%m%d %H%M%S') 10 time.struct_time(tm_year=2015, tm_mon=12, tm_mday=12, tm_hour=12, tm_min=12, tm_sec=12, tm_wday=5, tm_yday=346, tm_isdst=-1) 11 >>> time.mktime(time.localtime()) 12 1450336685.0 13 >>> 14 >>> yesterday = time.strftime('%Y-%m-%d 00:00:00',time.localtime(time.time()-3600*24)) 15 >>> print yesterday 16 2015-12-16 00:00:00 17 >>> tomorrow = time.strftime('%Y-%m-%d 00:00:00',time.localtime(time.time()+3600*24)) 18 >>> print tomorrow 19 2015-12-18 00:00:00
datetime对于时间计算很有用
datetime模块下有几个比较有用的方法 datetime,date,time,timedelta
语法: datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
date(year, month, day) --> date object
time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time object
timedelta(days=1,hours=2,minutes=3,seconds=4)
calendar.monthrange(year, month):判断由year和month组成月份,返回该月第一天为周几和该月总共有多少天
1 ##取日期列表 2 from datetime import datetime,date,timedelta 3 def get_range_time(begin,end,step): 4 while begin < end: 5 yield begin 6 begin = begin + step 7 8 for i in get_range_time(datetime(2015,11,2),datetime(2016,3,2),timedelta(days=1)): 9 print i 10 11 from datetime import datetime,date,timedelta 12 import calendar 13 14 #取动态月(自然月需要置day=1),如下 15 def get_month_range(startdate = None): 16 if startdate is None: 17 startdate = date.today().replace(day=1) 18 _,days_in_month = calendar.monthrange(startdate.year,startdate.month) 19 enddate = startdate + timedelta(days=days_in_month) 20 return startdate,enddate 21 22 begin,end = get_month_range() 23 add_step = timedelta(days=1) 24 while begin < end: 25 print begin 26 begin = begin + add_step
请记住以下时间转换关系图