python模块time

time库一用于处理事件相关功能

告知

这篇笔记是在学习了Python二级教程(杨文,管德永,王召强主编)(中国海洋大学出版社出版)后写的,内容雷同,如有侵权,请联系我删除,谢谢!!!

相关术语

呈现时间的格式:

时间戳

从1970年1月1日00:00:00开始计时的按秒计算的偏移量;eg: 1619761802.7536848

字符串

没有固定格式,可以自己设置,相关格式化语言给出

%Y一年份一 0001-9999(eg:1999)一 若y小写,则只显示后两位数字;
%m一 月份一 01-12
%B一 月名一 January-December
%b一 月名缩写一 Jan-Dec
%d一 日期一 01-31
%A一 星期一 Monday-Sunday
%a一 星期缩写一 Mon-Sun
%H一 小时(24h制)一 00-23
%I一 小时(12h制)一 01-12
%p一 上下午一 AM,PM
%M一 分钟一 00-59
%S一 秒一 00-59

struct_time对象

eg:time.struct_time(tm_year=2021, tm_mon=4, tm_mday=30, tm_hour=5, tm_min=50, tm_sec=2, tm_wday=4, tm_yday=120, tm_isdst=0)

参数:
tm_year一年份,整数
tm_mon一月份[1,12]
tm_mday一日期[1,31]
tm_hour一小时[0,23]
tm_min一分钟[0,59]
tm_sec一秒[0,59]
tm_wday一星期[0,6](0代表星期一)
tm_yday一该年中的第几天[0,366]
tm_isdst一是否为夏令时,0否,1是,-1未知

UTC 世界协调时

格林尼治天文时间,我国为UTC+8;

DST 夏令时

时间处理

time()

获取当前时间的时间戳

gmtime()

获取当前时间戳对应的struct_time对象(0时区的时间)

localtime()

获取当前时间戳对应的本地时间(北京时间)struct_time对象(8时区的时间)

ctime(时间戳)

获取当前时间戳对应的易读字符串表示,内部调用localtime函数会输出当前时间

import time

print(time.time())
#1619761802.7536848
print(time.gmtime())
#time.struct_time(tm_year=2021, tm_mon=4, tm_mday=30, tm_hour=5, tm_min=50, tm_sec=2, tm_wday=4, tm_yday=120, tm_isdst=0)
print(time.localtime())
#time.struct_time(tm_year=2021, tm_mon=4, tm_mday=30, tm_hour=13, tm_min=50, tm_sec=2, tm_wday=4, tm_yday=120, tm_isdst=0)
print(time.ctime())
#Fri Apr 30 13:50:02 2021,答案用这样的格式显示

时间格式化

mktime()

将struct_time对象转化为时间戳

strftime()

将任何通用格式转化为一个格式化字符串的形式表示(格式化字符串形式见“相关知识-字符串”)

strptime()

提取字符串的时间生成struct_time对象

import time

print(time.localtime())
#time.struct_time(tm_year=2021, tm_mon=4, tm_mday=30, tm_hour=14, tm_min=24, tm_sec=13, tm_wday=4, tm_yday=120, tm_isdst=0)
print(time.mktime(time.localtime()))
#1619763853.0
print(time.strftime('%Y-%b-%d-%A %p-%H-%M',time.localtime()))
#2021-Apr-30-Friday PM-14-24
a=time.strftime('%Y-%b-%d-%A %p-%H-%M',time.localtime())
print(time.strptime(a,'%Y-%b-%d-%A %p-%H-%M'))
#time.struct_time(tm_year=2021, tm_mon=4, tm_mday=30, tm_hour=14, tm_min=24, tm_sec=0, tm_wday=4, tm_yday=120, tm_isdst=-1)

计时

计时三要素

程序开始,结束时间;
程序总运行时间
程序各核心模块运行时间

sleep()

线程睡眠指定时间,单位为秒

monotonic()

返回单调时钟的时间(即不能倒流时间的时钟),时钟不受系统时间更新的影响。
***返回值的参考点未定,因此只有连续调用结果之间的差异才有效。

perf_counter()

返回性能计数器的值(以分秒为单位),即具有最高可用分辨率的时间,以测量短持续时间,包括在睡眠时间和系统范围内流逝的时间。
***返回值的参考点未定,因此只有连续调用结果之间的差异才有效。

import time

def fun1():
    time.sleep(0.2)
def fun2():
    a=10**6
    while a>0:
        a-=10
def fun3():
    time.sleep(0.5)

def main():
    stime=time.localtime()
    firsttime=time.mktime(stime)
    print("程序运行开始时间:",time.strftime('%Y-%m-%d %H:%M:%S',stime))
    PC1=time.perf_counter()
    fun1()
    PC2=time.perf_counter()
    fun1_usetime=PC2-PC1
    fun2()
    PC3=time.perf_counter()
    fun2_usetime=PC3-PC2
    fun3()
    PC4=time.perf_counter()
    fun3_usetime=PC4-PC3
    PC5=time.perf_counter()
    total_time=PC5-PC1

    print("fun1运行时间为:{}秒".format(fun1_usetime))
    print("fun2运行时间为:{}秒".format(fun2_usetime))
    print("fun3运行时间为:{}秒".format(fun3_usetime))

    print("总运行时间为:{}秒".format(total_time))

    etime=time.localtime()
    lasttime=time.mktime(etime)
    totaltime=lasttime-firsttime
    print("总时间是:{}".format(totaltime))

    print("整体运行结束时间:",time.strftime('%Y-%m-%d %H:%M:%S',etime))

if __name__=="__main__":
    main()
    
'''
程序运行开始时间: 2021-04-30 14:43:47
fun1运行时间为:0.21490160000000003秒
fun2运行时间为:0.009154999999999969秒
fun3运行时间为:0.5145016000000001秒
总运行时间为:0.7385627000000001秒
总时间是:1.0
整体运行结束时间: 2021-04-30 14:43:48
'''
上一篇:字符串处理


下一篇:python中time模块的简单使用