- 时间两种原始格式
1. 时间戳:是一种浮点数格式,从1970年到现在的秒数。
代码:time.time();
2.结构化时间:是一种固定格式的时间格式。
代码:time.localtime();
结构如下:
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=3, tm_hour=15, tm_min=32, tm_sec=40,tm_wday=1, tm_yday=246, tm_isdst=0)
- 时间格式的转化
1. 转化后为固定时间格式
① 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime (secs))。
代码:time.ctime([secs]);
结果如下:Tue Sep 3 15:50:34 2019;
② 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。
代码:time.asctime([t]);
结果如下:Tue Sep 3 15:50:34 2019;
2. 转化后为自定义时间格式
① 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
代码:time.strptime('2019-9-3 10:47:56','%Y-%m-%d %X')#(float,format)
结果如下:time.struct_time(tm_year=2019, tm_mon=9, tm_mday=3, tm_hour=10, tm_min=47,tm_sec=56, tm_wday=1, tm_yday=246, tm_isdst=-1)
② 把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元 素越界,ValueError的错误将会被抛出。
代码:time.strftime("%Y-%m-%d %X", time.localtime());#(format,struct_time)
结果如下:2019-09-03 16:46:39
3. 结构化时间转化为时间戳
代码:time.mktime(t);
4. 时间戳转化为结构化时间(gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。)
代码:time.gmtime([secs])
实例:>>>time.gmtime();
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=4, tm_hour=2,tm_min=4, tm_sec=21,tm_wday=2, tm_yday=247, tm_isdst=0)
- 时间操作
1. time.sleep(secs):线程推迟指定的时间运行。单位为秒。
2. time.clock():这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次 调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础, 它比毫秒表示更为精确)