python中,我们会用到很多和时间相关的操作。下面就来看看时间的模块的作用。
使用相应功能需要导入time模块
import time
time模块方法:
asctime(p_tuple=None):
将一个时间的元组或者struct_time类型的数据转换为字符串。
print(time.asctime()) print(time.asctime((2012,5,12,11,36,54,3,1,1))) print(time.asctime(time.localtime(1462707651))) print(type(time.asctime((2012,5,12,11,36,54,3,7,12))),type(time.asctime(time.localtime(1462707651.3773372))))
运行结果是:
Thu Sep 1 14:36:32 2016
Thu May 12 11:36:54 2012 Sun May 8 19:40:51 2016 <class 'str'> <class 'str'>
可以看见asctime方法将元组的时间格式以及struct_time类型的数据转换为了字符串,如果不进行参数的指定,就会返回当前时间。
clock():
第一次调用时返回系统运行时间,以后调用时都显示与第一次调用的间隔。
print(time.clock()) time.sleep(1) print(time.clock()) time.sleep(1) print(time.clock())
运行结果是:
4.665297557343505e-07 0.9996267761954125 1.9995838554578849
ctime(seconds=None):
这个方法是将时间戳转换为字符串格式,如果没有参数,则将当前时间转换为字符串
print(time.ctime()) print(time.ctime(1462707651)) print(type(time.ctime()))
运行结果是:
Thu Sep 1 14:48:54 2016 Sun May 8 19:40:51 2016 <class 'str'>
gmtime(seconds=None):
将时间戳转换为0时区的struct_time类型。如果没有参数,则将当前时间进行转换。
print(time.gmtime())
print(time.gmtime(1462707651))
print(type(time.gmtime(1462707651)))
运行结果是:
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=7, tm_min=8, tm_sec=13, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=8, tm_hour=11, tm_min=40, tm_sec=51, tm_wday=6, tm_yday=129, tm_isdst=0)
<class 'time.struct_time'>
struct_time类型解释:
tm_year 年
tm_mon 月
tm_mday 日
tm_hour 小时(注意时区的差别)
tm_min 分
tm_sec 秒
tm_wday 一周的第几天(0是周一)
tm_yday 一年的第几天
tm_isdst 夏令时标志位(有1,0,-1)
localtime(seconds=None):
将时间戳转换为当前时区的struct_time类型。如果没有参数,则将当前时间进行转换。
print(time.localtime())
print(time.localtime(1462707651))
print(type(time.localtime(1462707651)))
运行结果是:
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=23, tm_sec=16, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=8, tm_hour=19, tm_min=40, tm_sec=51, tm_wday=6, tm_yday=129, tm_isdst=0)
<class 'time.struct_time'>
mktime(p_tuple):
接收一个时间的元组,返回时间戳。
print(time.mktime(time.gmtime()))
print(time.mktime((2016, 9, 1, 15, 23, 16, 3, 245, 0)))
运行结果是:
1472686642.0 1472714596.0
mktime方法必须要传入参数。
sleep(seconds):
延迟给定的秒数。
print(time.localtime())
time.sleep(3)
print(time.localtime())
运行结果是:
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=45, tm_sec=2, tm_wday=3, tm_yday=245, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=45, tm_sec=5, tm_wday=3, tm_yday=245, tm_isdst=0)
strftime(format, p_tuple=None):
将struct_time类型的数据使用指定的格式输出。如果没有传入struct_time类型的数据则使用当前时间。
print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
print(time.strftime('%Y-%m-%d %H:%M:%S',(2016, 9, 1, 15, 23, 16, 3, 245, 0)))
运行结果是:
2016-09-01 15:51:03 2016-09-01 15:51:03 2016-09-01 15:23:16
常用的格式代码如下:
%Y 十进制数的世纪年份
%m 十进制数的月份[01,12]
%d 十进制数的天数[01,31]
%H 十进制数的小时(24小时制)[00,23]
%M 十进制数的分钟[00,59]
%S 十进制数的秒数[00,61]
%z 时区与UTC(0时区)的偏移
%a 当前语言环境下缩写的工作日名称
%A 当前语言环境下完整的工作日名称
%B 当前语言环境下缩写的月份名称
%B 当前语言环境下完整的月份名称
%C 当前语言环境下适当的日期和时间表示
%I 十进制数的小时(12小时制)[01,12]
%p 当前语言环境下的上午或下午
strptime(string, format):
将格式化字符串转换为时间戳。
print(time.strptime('2016-09-01 15:51:03','%Y-%m-%d %H:%M:%S'))
print(time.strptime('2016-09-01 15:23:16','%Y-%m-%d %H:%M:%S'))
运行结果是:
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=51, tm_sec=3, tm_wday=3, tm_yday=245, tm_isdst=-1)
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=1, tm_hour=15, tm_min=23, tm_sec=16, tm_wday=3, tm_yday=245, tm_isdst=-1)
time():
返回当前时间的时间戳,如果系统时钟提供几分之一秒,返回结果也会有相应的结果。
print(time.time())
运行结果是:
1472717978.9570408