函数和常用模块【day06】:time模块 (一)
本节内容
1、简述
2、time模块
3、时间格式转换
一、简述
我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块:time & datetime
二、time模块
1、time.process_time()
功能:测量处理器的运算时间,但是不包括sleep时间,因为sleep只是把你的程序挂起,不太稳定。
1
2
3
|
>>> import time >>> time.process_time() 0.8736056 |
2、time.altzone()
功能:返回与utc的时间的时间差,以秒计算
1
2
3
4
5
|
>>> import time >>> time.altzone - 32400 >>> time.altzone / 3600 - 9.0 |
注:感觉有点不太准确,为什么是-9时呢?无解,先忘记它吧!
3、time.asctime()
功能:返回时间格式:'Thu Mar 30 16:47:39 2017'(星期 月 日 时间 年)
1
2
3
|
>>> import time >>> time.asctime() 'Thu Mar 30 16:47:39 2017' #返回 星期 月 日 时间 年 |
4、time.localtime()
功能:返回本地时间的struct _time的格式的对象,也可以把时间戳转换成成struct _time的格式的对象
1
2
3
4
5
6
|
>>> 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 |
5、time.time()
功能:返回当前时间的时间戳(1970年纪元后经过的浮点秒数)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> 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时间(伦敦时间)
1
2
3
4
5
6
7
|
>>> 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个小时 |
注:没啥用处?知道就行。
7、time.strptime()
功能:把时间格式的字符串转成struct_time格式的时间对象
1
2
3
4
|
>>> 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 ) |
8、time.mktime()
功能:把struct_time时间对象转成时间戳
1
2
3
4
5
6
7
|
>>> 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 |
9、time.strftime()
功能:struct_time时间对象转换成时间字符串
1
2
3
4
5
6
7
8
9
10
11
|
>>> 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' |
当然,中间如果需要用时间戳转换的话,你还可以这样,代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
>>> 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' |
三、时间格式转换
1、转换表格
2、时间格式转换关系图
作者:罗阿红
出处:http://www.cnblogs.com/luoahong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。