详解python中处理时间的模块

在time模块中,可以用三种表现形式来表示时间,分别是时间戳、格式化时间字符串和结构化时间:
时间戳,通过time.time()获得

> time.time() 1545027641.4434128

格式化时间字符串,通过类似于time.strftime("%Y-%m-%d %H:%M:%S")这样的表达式获得

> time.strftime("%Y-%m-%d %H:%M:%S") '2018-12-17 14:22:49'

下面是python中时间日期格式化符号:

%a 本地星期名称的简写(如星期四为Thu)
%A 本地星期名称的全称(如星期四为Thursday)
%b 本地月份名称的简写(如八月份为agu)
%B 本地月份名称的全称(如八月份为august)
%c 本地相应的日期表示和时间表示
%d 一个月中的第几天(01 - 31)
%f 微秒(范围0.999999)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,0 - 11)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的标识符
%S 秒数(00 - 59)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之 前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应的日期表示
%X 本地相应的时间表示
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%z 与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z 时区的名字(如果是本地时间,返回空字符串)
%% %本身

结构化时间,或者叫时间元祖,通过time.localtime()获得,返回一个时间元祖

>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=12, tm_mday=17, tm_hour=14, tm_min=36, tm_ sec=24, tm_wday=0, tm_yday=351, tm_isdst=0)

其中

tm_year(年) 2018
tm_mon(月) 1 到 12
tm_mday(日) 1 到 31
tm_hour(时) 0 到 23
tm_min(分) 0 到 59
tm_sec(秒) 0 到 61 (60或61 是闰秒)
tm_wday(weekday) 0到6 (0是周一)
tm_yday(一年的第几天) 1 到 366
tm_isdst(是否是夏令时) -1, 0, 1, -1是决定是否为夏令时的标志

关于time模块的一些基本使用方法:
time.sleep(t) 其中参数 t 指推迟执行的秒数
time.time() 返回当前时间的时间戳

import time def f(): time.sleep(3) t1 = time.time() f() t2 = time.time() print(t2-t1) #3.001171588897705

time.localtime([ sec ]) 格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。

time.gmtime([ sec ]) 格式化时间戳为格林威治标转时间。 如果sec参数未输入,则以当前时间为转换标准。

time.strftime(format[, t]) 其中参数format表示格式化字符串,可选参数是一个struct_time对象

time.strptime(string[,format]) 是time.strftime()方法的逆向操作

>>> time.strftime("%Y-%m-%d %H:%M:%S") '2018-12-17 15:17:17' >>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) '2018-12-17 07:17:42' >>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1545030000)) '2018-12-17 15:00:00' time.strptime('2018-12-17', '%Y-%m-%d') time.struct_time(tm_year=2018, tm_mon=12, tm_mday=17, tm_hour=0, tm_min 0, tm_sec=0, tm_wday=0, tm_yday=351, tm_isdst=-1)

time.asctime([t]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2018"的字符串,其中 t — 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值。没有传参则默认为time.localtime()。

>>> time.asctime() 'Mon Dec 17 15:20:51 2018' >>> time.asctime(time.localtime()) 'Mon Dec 17 15:21:03 2018' >>> time.asctime(time.localtime(1545030000)) 'Mon Dec 17 15:00:00 2018' >>> time.asctime(time.gmtime()) 'Mon Dec 17 07:21:36 2018' >>> time.asctime((2018, 12, 17, 15, 0, 0, 0, 351, 0)) 'Mon Dec 17 15:00:00 2018'

time.ctime([ sec ]) 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于 asctime(localtime(secs))。没有返回值。

>>> time.ctime() 'Mon Dec 17 15:29:33 2018' >>> time.ctime(1545030000) 'Mon Dec 17 15:00:00 2018'

time.clock() 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时。这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。

import time def procedure(): time.sleep(3) t = time.clock() procedure() print (time.clock() - t, "seconds process time") #2.999830285124656 seconds process time

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxzwj.html