咱们在写代码的过程常常遇到时间模块,若是咱们之后须要根据时间去筛选信息的话,那用户会更大,因此今天就来说讲时间的两大模块:time & datetime函数
一、time.process_time()spa
功能:测量处理器的运算时间,可是不包括sleep时间,由于sleep只是把你的程序挂起,不太稳定。操作系统
>>> import time >>> time.process_time() 0.8736056
二、time.altzone()unix
功能:返回与utc的时间的时间差,以秒计算code
>>> import time >>> time.altzone -32400 >>> time.altzone/3600 -9.0
注:感受有点不太准确,为何是-9时呢?无解,先忘记它吧!对象
三、time.asctime()blog
功能:返回时间格式:'Thu Mar 30 16:47:39 2017'(星期 月 日 时间 年)字符串
>>> import time >>> time.asctime() 'Thu Mar 30 16:47:39 2017' #返回 星期 月 日 时间 年
四、time.localtime()class
功能:返回本地时间的struct _time的格式的对象,也能够把时间戳转换成成struct _time的格式的对象import
>>> import time >>> t = time.localtime() #返回本地时间的对象,经过对象获取对应的年月日等信息 >>> t time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=16, tm_min=52, tm_sec=10, tm_wday=3, tm_yday=89, tm_isdst=0) >>> t.tm_hour # 获取小时数 16
五、time.time()
功能:返回当前时间的时间戳(1970年纪元后通过的浮点秒数)
>>> import time #返回当前时间的时间戳 >>> time.time() 1490864724.061428 #跟localtime()结合起来返回当前时间对象 >>> time.localtime(time.time()) time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=17, tm_min=5, tm_sec=38, tm_wday=3, tm_yday=89, tm_isdst=0) # 给当前时间加上3个小时,注意了,localtime中只能介绍秒级别的,因此是3600*3表示3个小时 >>> time.localtime(time.time() + 3600*3) time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=20, tm_min=5, tm_sec=53, tm_wday=3, tm_yday=89, tm_isdst=0) #跟asctime结合起来用 生成当前时间格式 >>> time.asctime( time.localtime( time.time() ) ) 'Thu Mar 30 17:06:26 2017'
注:为啥是1970年呢?由于1970年1月1日被当作unix操做系统的诞生元年。
6.time.gmtime()
功能:返回当前utc时间(伦敦时间)
>>> import time >>> time.gmtime() #返回utc的时间struct time 格式 time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=9, tm_min=25, tm_sec=13, tm_wday=3, tm_yday=89, tm_isdst=0) >>> time.asctime(time.gmtime()) 'Thu Mar 30 09:26:14 2017' #伦敦时间 >>> time.asctime(time.localtime()) 'Thu Mar 30 17:26:14 2017' #北京时间,二者正好相差8个小时
注:没啥用处?知道就行。
七、time.strptime()
功能:把时间格式的字符串转成struct_time格式的时间对象
>>> import time >>> time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M") #转换为struct_time格式的时间对象 time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=17, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=89, tm_isdst=-1)
八、time.mktime()
功能:把struct_time时间对象转成时间戳
>>> import time #生成struct_time时间对象 >>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M") #时间对象转成时间戳 >>> t2_stamp = time.mktime(t) >>> t2_stamp 1490866200.0
九、time.strftime()
功能:struct_time时间对象转换成时间字符串
>>> import time #生成struct_time时间对象 >>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M") #把时间对象转换成时间格式的字符串 >>> m = time.strftime("%Y-%m-%d-%H-%M.log",t) >>> m '2017-03-30-17-30.log' #不传入时间对象,默认是当前时间 >>> m = time.strftime("%Y-%m-%d-%H-%M.log") >>> m '2017-03-30-17-56.log'
固然,中间若是须要用时间戳转换的话,你还能够这样,代码以下:
>>> import time #生成struct_time时间对象 >>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M") #把时间对象转成时间戳 >>> t2_stamp = time.mktime(t) #再经过localtime函数把时间戳转成struct_time时间对象 >>> t3 = time.localtime(t2_stamp) #把时间对象转换成时间格式的字符串 >>> m = time.strftime("%Y-%m-%d-%H-%M.log",t) >>> m '2017-03-30-17-30.log'
一、转换表格
二、时间格式转换关系图
一、datetime.datetime.now()
功能:返回当前时间,格式如:2016-08-19 12:47:03.941925
>>> import datetime >>> print(datetime.datetime.now()) 2017-03-31 10:22:09.819373
二、datetime.date.fromtimestamp()
功能:时间戳转换为日期格式
>>> import datetime,time >>> t = datetime.date.fromtimestamp(time.time()) >>> print(t) #把当天日期的时间戳转换为当天日期 2017-03-31
三、datetime.timedelta()
功能:对某个时间的加减
>>> import datetime #当前时间加3天 >>> t1 = datetime.datetime.now() + datetime.timedelta(days=3) >>> print(t1) 2017-04-03 10:42:50.714910 #当前时间减3天 >>> t1 = datetime.datetime.now() - datetime.timedelta(days=3) >>> print(t1) 2017-03-28 10:43:17.260111 #当前时间减3天 >>> t1 = datetime.datetime.now() + datetime.timedelta(days=-3) >>> print(t1) 2017-03-28 10:43:35.758742 #当前时间加3个小时 >>> t1 = datetime.datetime.now() + datetime.timedelta(hours=3) >>> print(t1) 2017-03-31 13:44:24.805354 #当前时间加30分钟 >>> t1 = datetime.datetime.now() + datetime.timedelta(minutes=30) >>> print(t1) 2017-03-31 11:14:55.990195
四、时间替换
>>> import datetime >>> c_time = datetime.datetime.now() #当前时间输出 >>> print(c_time) 2017-03-31 10:47:22.682289 #时间替换 >>> update_c_time = c_time.replace(minute=3,hour=2) #替换后的时间输出 >>> print(update_c_time) 2017-03-31 02:03:22.682289