python进阶之time模块详解
Time模块
Time模块包含的函数
Time模块包含了一下内置的函数,既有时间处理的,也有转换时间格式的:
Time模块包含的函数
Time模块包含了一下内置的函数,既有时间处理的,也有转换时间格式的:
序号 函数及描述 1 time.altzone 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。 2 time.asctime([tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。 3 time.clock( ) 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。 4 time.ctime([secs]) 作用相当于asctime(localtime(secs)),未给参数相当于asctime() 5 time.gmtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0 6 time.localtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。 7 time.mktime(tupletime) 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。 8 time.sleep(secs) 推迟调用线程的运行,secs指秒数。 9 time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。 10 time.strptime(str,fmt=\'%a %b %d %H:%M:%S %Y\') 根据fmt的格式把一个时间字符串解析为时间元组。 11 time.time( ) 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。 12 time.tzset() 根据环境变量TZ重新初始化时间相关设置。
下面我们分别解释每一个函数的用法
altzone()
参数:无
返回值:返回格林威治西部的夏令时地区的偏移描述。如果该地区在格林威治东部会返回负值(如西欧,包括美国)
语法:
>>> time.altzone
-32400
>>>
asctime()
参数:9个元素的元祖或者通过函数gmtime()或localtime()返回的时间值
返回值:返回一个可读的形式为”Tue Dec 11 18:07:14 2008″(2018年10月11日 周二18时07分14秒)的24个字符的字符串。
语法:
>>> time.asctime() \'Tue Oct 23 16:27:39 2018\' >>> time.asctime(time.localtime()) \'Tue Oct 23 16:28:08 2018\'
clock()
参数:无
返回值:
该函数有两个功能,
在第一次调用的时候,返回的是程序运行的实际时间;
以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔
语法:
print(time.clock()) for i in range(1, 100): print(i) print(time.clock())
输出结果:
0.0 6.6986723828671e-05
ctime()
参数: 要转换为字符串时间的秒数
返回值:无
语法:
>>> time.ctime() \'Tue Oct 23 16:38:18 2018\' >>> time.ctime(1024) \'Thu Jan 1 08:17:04 1970\'
gmtime()
参数:转换为time.stryct_time类型的对面的秒数
返回值:无
语法:
>>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=8, tm_min=41, tm_sec=2, tm_wday=1, tm_yday=296, tm_isdst=0) >>> time.gmtime(45) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=45, tm_wday=3, tm_yday=1, tm_isdst=0) >>> time.gmtime(2) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=2, tm_wday=3, tm_yday=1, tm_isdst=0) >>>
locatime()
参数:转换为time.struct_time类型的对面的秒数
返回值:无
语法:
>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=16, tm_min=44, tm_sec=6, tm_wday=1, tm_yday=296, tm_isdst=0)
sleep()
参数:推迟执行的秒数
返回值:无
语法:
print(time.ctime()) time.sleep(5) print(time.ctime())
输出结果:
Tue Oct 23 16:49:45 2018 Tue Oct 23 16:49:50 2018
strftime(format[, t ])
参数:format – 格式字符串 t – 可选的参数t是一个struct_time对象
返回值:可读字符串标识的当地时间
说明:
python 中时间日期格式化符号
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
语法:
>>> time.strftime("%Y %m %d %H:%M:%S") \'2018 10 23 16:57:02\'
time()
参数:无
返回值:返回当前时间的时间戳(1970纪元后经过的浮点秒数)
print ("time.time(): %f " % time.time()) print (time.asctime( time.localtime(time.time()) ))
输出结果:
time.time(): 1540285177.428731 Tue Oct 23 16:59:37 2018
时间元祖:
索引值(index) 属性(Attribute) 值(Values) 0 tm_year(年) (例如:2015) 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(是否为夏令时) 0,1,-1(-1代表夏令时)
时间转换图解