作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
原链:http://www.cnblogs.com/vamei/archive/2012/09/03/2669426.html
笔记:这里建议多看补充材料,作者介绍的并不多
#第26讲 日期与时间 import time print (time.time()) #输出是一个挂钟时间 wall clock time #挂钟时间:这个时间是从某个固定时间起点到现在的时间间隔,单位是秒数 #这个时间的选择是跟计算机相关的,这个时间起点是固定的 print (time.clock()) #输出是处理器时间processor clock time ,单位也是秒数 #测量CPU实际运行的时间,测量计算机性能,CPU闲置时,处理器时间会暂停 #time包 time.sleep(1) #可以将程序置于休眠状态,直到某时间间隔之后再唤醒,继续运行 print ('start') time.sleep(5) #休息5s print ('wake up') st = time.gmtime() #返回struct_time 格式的UTC时间,struct_time注释1 #UTC 时间是格林尼治时间,也就是英伦敦时间 #time.struct_time(tm_year=2017, tm_mon=11, tm_mday=5, tm_hour=9, tm_min=43, tm_sec=23, tm_wday=6, tm_yday=309, tm_isdst=0) st = time.localtime() #返回stuct_time 格式的当地时间,就是东八区北京时间了 #返回 #time.struct_time(tm_year=2017, tm_mon=11, tm_mday=5, tm_hour=17, tm_min=44, tm_sec=19, tm_wday=6, tm_yday=309, tm_isdst=0) s = time.mktime(st) #将stuct_time 格式转换成wall clock time #datetime包 ''' 1.简介 datetime 是基于time 包的一个高级包 datetime 可以理解为date time 两个组成部分 date是年月日构成的日期(就是日历) time是一天24H的具体时间(时钟) 可以分开进行管理 datetime.date datetime.time 也可以两者合在一起 datetime.datetime ''' import datetime t = datetime.datetime(2012,9,3,21,30) print (t) #输出2012-09-03 21:30:00 #返回t 带有year month day hour minute second ''' 2.运算 datetime包还定义了时间间隔对象,timedelta 一个时间点,加上一个时间间隔,可以得到一个新的时间点 ''' import datetime t = datetime.datetime(2017,11,5,18,30) t_next = datetime.datetime(2017,12,5,18,30) delta1 = datetime.timedelta(seconds = 600) delta2 = datetime.timedelta(weeks = 3) print (t + delta1) #t时间加600s #输出2017-11-5 18:40:00 print (t + delta2) #t时间加上3周,一周7天 #输出2017-11-26 18:30:00 print (t_next - t) #两个时间相减 #输出30*24*60*60 秒数 #实际输出30 days, 0:00:00 #datetime.timedelta()传递参数是可以选择,days hours seconds milliseconds(毫秒) microsecond(微秒) #两个datetime进行比较 print (t > t_next) #返回就是布尔值True False ''' 3.datetime对象与字符串转换 格式化读取方式读取时间信息 ''' from datetime import datetime format = 'output-%Y-%m-%d-%H%M%S.txt' str = 'output-1970-12-23-030000.txt' t = datetime.strptime(str, format) print (t) #输出 1970-12-23 03:00:00 #时间转换字符串 print (t.strftime(format)) #这里注意,strftime 是按照上面的format进行转换的 #输出也是带output的 #time.strftime(format[, t]) #函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定 t = (2009, 2, 17, 17, 3, 38, 1, 48, 0) #时间元组 年月日 时分秒 周天令 t1 = time.mktime(t) #时间元组转换wall clock time 时间的浮点数 print (t1) print (type(t1)) # float t2 = time.gmtime(t1)#转换成UTC 的时间 print (t2) print (type(t2))#time.struct_time 标准时间元组 t3 = time.strftime('%Y-%m-%d %H:%M:%S', t2) #按照输入格式 格式化 print (t3)#输出格式化时间 #现在是英伦敦时间,转化当地时间 t4 = time.localtime(t1) print (t4) #换一个格式 format ='%Y %b %d %H:%M:%S' print (time.strftime(format,t4)) ''' 注释1 struct_time 是一个时间元组 0 tm_year 2008 1 tm_mon 1 到 12 2 tm_mday 1 到 31 3 tm_hour 0 到 23 4 tm_min 0 到 59 5 tm_sec 0 到 61 (60或61 是闰秒) 6 tm_wday 0到6 (0是周一) 7 tm_yday 1 到 366(儒略历) 8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜 注释2 获取日历 ''' import calendar cal = calendar.month(2016, 1) print ('以下输出2016年1月的日历:') print (cal) ''' 以下输出2016年1月的日历: January 2016 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ''' ''' 回归一下正则的作业 作业 有一个文件,文件名为output_1981.10.21.txt 。下面使用Python: 读取文件名中的日期时间信息,并找出这一天是周几。将文件改名为output_YYYY-MM-DD-W.txt (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天) ''' import re filedate = re.search('output_(\d{4}.\d{2}.\d{2})', 'output_1981.10.21.txt') print (filedate.group(1)) print (type(filedate.group(1))) fileinfo = filedate.group(1) from datetime import datetime format = '%Y.%m.%d' time = datetime.strptime(fileinfo,format) print (time) print (type(time)) ''' 突然想到用str 的替换方法 ''' filename2 = fileinfo.replace('.', '-') print (filename2) print (type(filename2)) wayofday = time.weekday() wayofday = wayofday + 1 print (wayofday) targetfilename = 'output'+ '_' + filename2 + '-' + str(wayofday) + '.txt' ''' 昨天的作业只用到dayofweek 时间过滤,就是把输出的1981-10-21 00:00:00 今天找到了,但是关闭了。。还是没能完成过滤操作 对象方法/属性名称 描述 d.year 年 d.month 月 d.day 日 d.replace(year[, month[, day]]) 生成并返回一个新的日期对象,原日期对象不变 d.timetuple() 返回日期对应的time.struct_time对象 d.toordinal() 返回日期是是自 0001-01-01 开始的第多少天 d.weekday() 返回日期是星期几,[0, 6],0表示星期一 d.isoweekday() 返回日期是星期几,[1, 7], 1表示星期一 d.isocalendar() 返回一个元组,格式为:(year, weekday, isoweekday) d.isoformat() 返回‘YYYY-MM-DD’格式的日期字符串 d.strftime(format) 返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同 '''
注释:#上面define 了str ,所以后面用str 会报错
资料补充链接:http://blog.csdn.net/p9bl5bxp/article/details/54945920
浙公网安备 33010602011771号