#前面已经了解了时间的基本概念,接着将具体了解time模块中的一些常用函数。time模块的内置函数有做时间处理的,也有转换时间格式的。
1、time()函数
#time()函数用于返回当前时间的时间戳(1970年01月01日08时00分00秒到现在的浮点秒数)。
#time()函数的语法如下:
time.time()
#此语法中第一个time指的是time模块,该函数不需要传递参数。
#time函数返回当前时间的时间戳。
#该函数使用示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #time_10.2 4 5 import time 6 7 print('当前时间戳:%f'%time.time())
#执行结果如下:
1 D:Pythonworkspacedatatime20171221>python time_10.2.py 2 当前时间戳:1513867659.415586
2、localtime([secs])函数
#localtime()函数的作用是格式化时间戳为本地时间。如果secs参数未输入,就以当前时间为转换标准。
#localtime()函数的语法如下:
time.localtime([secs])
#此语法中time指的是time模块,secs值转换为time.struce_time类型的对象的秒数。
#该函数没有任何返回值。
#该函数使用示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #time_10.2 4 5 import time 6 7 print('time.localtime():',time.localtime())
#执行结果如下:
1 D:Pythonworkspacedatatime20171221>python time_10.2.py 2 time.localtime(): time.struct_time(tm_year=2017, tm_mon=12, tm_mday=21, tm_hour=22, tm_min=54, tm_sec=31, tm_wday=3, tm_yday=355, tm_isdst=0)
3、gmtime([secs])函数
#gmtime()函数用于将一个时间戳转换为UTF时区(0时区)的struct_time,可选的参数secs表示从1970-1-1到现在的秒数。gmtime()函数的默认值为time.time(),函数返回time.struct_time类型的对象(struct_time是在time模块中定义的表示时间的对象)。
#gmtime()函数的语法如下:
1 time.gmtime([secs])
#此语法中time指的是time模块,secs指转换为time.struct_time类型的对象的秒数。
#该函数没有任何返回值。
#该函数示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #gmtime([secs]) 4 5 import time 6 7 print('time.gmtime():',time.gmtime())
#执行结果如下:
1 D:Pythonworkspace>python gmtime([secs]) 2 time.gmtime(): time.struct_time(tm_year=2017, tm_mon=12, tm_mday=25, tm_hour=3, tm_min=30, tm_sec=28, tm_wday=0, tm_yday=359, tm_isdst=0)
4、mktime(t)函数
#mktime()函数用于执行与gmtime()、localtime()相反的操作,接受struct_time对象作为参数,返回用秒数表示时间的浮点数。如果输入的值不是合法时间,就会触发OverflowError或ValueError.
#mktime()函数的语法如下:
time.mktime(t)
#此语法中time指的是time模块,t是指结构化的时间或完整的9位元组元素。
#返回用秒数表示时间的浮点数。
#该函数实例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #mktime(t) 4 5 import time 6 7 t=(2017,12,25,14,16,25,6,48,0) 8 print('time.mktime():%f'%time.mktime(t))
#执行结果如下:
1 D:Pythonworkspacedatatime20171226>python mktime(t).py 2 time.mktime(t):1514295225.000000
5、asctime([t])函数
#asctime()函数用于接收时间元组并返回一个可读形式为Tue Dec 26 21:45:51 2017(2017年12月26日 周二21时45分51秒)的24个字符的字符串。
#asctime()函数的语法如下:
1 time.asctime([t])
#此语法中time指的是time模块,t指完整的9位元组元素或通过函数gmtime()、localtime()返回的时间值。
#示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #asctime([t]) 4 5 import time 6 7 t=time.localtime() 8 print('time.asctime(t):%s'%time.asctime(t))
#执行结果如下:
1 D:Pythonworkspacedatatime20171226>python asctime([t]).py 2 time.asctime(t):Tue Dec 26 21:45:51 2017
6、ctime([secs])函数
#ctime()函数用于把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果未指定参数secs或参数为None,就会默认将time.time()作为参数。ctime的作用相当于asctime(localtime(secs)).
#ctime()函数的语法如下:
1 time.ctime([secs])
#此语法中time指的是time模块,secs指要转换为字符串时间的秒数。
#该函数没有任何返回值。
#该函数示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #ctime([secs]) 4 5 import time 6 print('time.ctime():%s'%time.ctime())
#执行结果如下:
1 D:Pythonworkspacedatatime20171226>python ctime([secs]).py 2 time.ctime():Tue Dec 26 22:04:11 2017
7、sleep(secs)函数
#sleep()函数用于推迟调用线程的运行,可通过参数secs指定进程挂起的时间。
#sleep()函数的语法如下:
1 time.sleep(secs)
#此语法中time指的是time模块,secs指推迟执行的秒数。
#该函数没有任何返回值。
#该函数示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #sleep(secs) 4 5 import time 6 7 print('Start:%s'%time.ctime()) 8 time.sleep(5) 9 print('End:%s'%time.ctime())
#执行结果如下:
1 D:Pythonworkspacedatatime20171226>python sleep.py 2 Start:Tue Dec 26 22:10:23 2017 3 End:Tue Dec 26 22:10:28 2017
#由执行结果看到,输出的时间间隔了5秒。
8、clock()函数
#clock()函数用于以浮点数计算的秒数返回当前CPU时间,用于衡量不同程序的耗时,比time.time()更有用。该函数在不同系统上含义不同。在UNIX系统上,返回的是“进程时间”,是用秒表示浮点数(时间戳);在windows上,第一次调用返回的是进程运行的实际时间,第二次之后的调用是自第一次调用后到现在的运行时间。
#clock()函数的语法如下:
1 time.clock()
#此语法中time指的是time模块,该函数不需要参数。该函数有两个功能:
(1)在第一次调用时,返回程序运行的实际时间。
(2)第二次之后的调用,返回自第一次调用后到这次调用的时间间隔。
#在win32系统下,clock()函数返回的是真是时间(wall time),而在UNIX/Linux下返回的是CPU时间。
#该函数示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #time.clock() 4 5 import time 6 7 def procedure(): 8 time.sleep(2) 9 10 #measure process time 11 t1=time.clock() 12 procedure() 13 print('second process time:',time.clock()-t1) 14 15 #measure wall time 16 t2=time.clock() 17 procedure() 18 print('second wall time:',time.clock()-t2)
#执行结果如下:
1 D:Pythonworkspacedatatime20171226>python clock.py 2 second process time: 1.9999403212465485 3 second wall time: 2.0004538626217903
#此处的执行结果会因电脑的不同而有所差异(精准度存在差异)。
9、strftime(format[,t])函数
#strftime()函数用于接收时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。
#strftime()函数的语法如下:
1 time.strftime(format[,t])
#此语法中time指的是time模块,format指格式化字符串,t指可选参数,是一个struct_time对象。
#返回以可读字符串表示当地时间。
#该函数使用示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #strftime(format[,t]) 4 5 import time 6 7 t=(2017,12,27,21,49,50,5,47,0) 8 t=time.mktime(t) 9 print(time.strftime('%b %d %Y %H:%M:%S',time.gmtime(t))) #各参数前进行了适当的空格。
#执行结果如下:
1 D:Pythonworkspacedatatime20171227>python strftime(format[,t]).py 2 Dec 27 2017 13:49:50
10、strptime(string[,format])函数
#strptime()函数用于根据指定的格式把一个时间字符串解析为时间元组。
#strptime()函数的语法如下:
1 time.strptime(string[,format])
#此语法中time指的是time模块,string指时间字符串,format指格式化字符串。
#返回struct_time对象。
#该函数使用示例如下:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #strptime(string[,format]) 4 5 import time 6 7 struct_time=time.strptime("25 Sep 16","%d %b %y") 8 print('returned tuple:',struct_time)
#执行结果如下:
1 D:Pythonworkspacedatatime20171227>python strptime(string[,format]).py 2 returned tuple: time.struct_time(tm_year=2016, tm_mon=9, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=269, tm_isdst=-1)
11、三种时间格式转化
#我们前提到,Python中有3种表示时间的格式。这3种时间格式可以相互转化,转化方式如下图1和图2所示: