Python-time

time库

time库的功能如下:

(1)计算机时间的表达

(2)提供获取系统时间并格式化输出功能

(3)提供系统级精确计时功能,用于程序性能分析

time函数

时间获取:time()、ctime()、gmtime()、localtime()

时间格式化:strftime()、strptime()、asctime()

程序计时:sleep()、perf_counter()

1、时间获取

1.1、time()

获取当前时间戳(浮点型)(时间戳计算:https://tool.lu/timestamp/)

import time
print(time.time())
#输出
1671334375.0746467

1.2、ctime() :

获取当前本地时间并以易读方式显示(字符串)

print(time.ctime())
#输出
Sun Dec 18 11:43:06 2022

1.3、localtime()、gmtime()

localtime()函数和gmtime()函数都可将时间戳转换为以元组表示的时间对象(struct_time格式),但是localtime()函数得到的是当地时间,gmtime()函数得到的是世界统一时间。

print(time.gmtime())
#输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=18, tm_hour=3, tm_min=44, tm_sec=58, tm_wday=6, tm_yday=352, tm_isdst=0)

print(time.localtime())
#输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=18, tm_hour=11, tm_min=45, tm_sec=53, tm_wday=6, tm_yday=352, tm_isdst=0)

2、时间格式化

将时间以合理的方式展示出来

格式化:类似字符串格式化,需要有展示模板

展示模板由特定的格式化控制符组成

2.1、strftime(tpl,ts)

strftime(格式,时间 )主要决定时间的输出格式

  • tpl 是格式化模板字符串,用来定义输出效果。
  • ts 是计算机内部时间类型变量。

时间格式控制符 说明

字符 说明
%Y 四位数的年份,取值范围为0001~9999,如1900
%m 月份(01~12),例如10
%d 月中的一天(01~31)例如:25
%B 本地完整的月份名称,比如January
%b 本地简化的月份名称,比如Jan
%a 本地简化的周日期,Mon~Sun,例如Wed
%A 本地完整周日期,”Monday~Sunday,例如Wednesday
%H 24小时制小时数(00~23),例如:12
%l 12小时制小时数(01~12),例如:7
%p 上下午,取值为AM或PM
%M 分钟数(00~59),例如26
%S 秒(00~59),例如26
import time
t=time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))
#输出
2022-12-18 07:48:19

2.2、strptime(str,tpl)

  • str 是字符串形式的时间值
  • tpl 是格式化模板字符串,用来定义输入效果:函数返回值是时间结构体
import time
timeStr = "2022-12-18 19:58:55"
print(time.strptime(timeStr,"%Y-%m-%d %H:%M:%S"))
#输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=18, tm_hour=19, tm_min=58, tm_sec=55, tm_wday=6, tm_yday=352, tm_isdst=-1)

2.3、perf_counter()

返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,联系调用差值才有意义。

#程序计时
import time
import datetime

class Mytime():
    def __init__(self):
        self.begin = 0
        self.end = 0

    #start time
    def start(self):
        self.begin = int(time.time())
        print("计时开始!")

    #stop time
    def stop(self):
        self.end = int(time.time())
        self.__calc()

    def __calc(self):
        self.lasted = self.end - self.begin
        if self.lasted == self.end:
            print("请开始计时!")
        else:
            print("计时结束!")
            print("共运行了:",self.lasted,"秒")
            
            
if __name__ == '__main__':
    t1 = Mytime()
    t1.start()
    time.sleep(10)
    t1.stop()

2.4、sleep(s)

sleep(s) : s指休眠的时间,单位是秒,可以是浮点数

结合time.perf_counter()
import time
startTime = time.perf_counter()
time.sleep(3)
endTime = time.perf_counter()
print("%.3f" %(endTime - startTime))
#输出
3.007
posted @ 2022-12-18 16:09  Fanslyx  阅读(80)  评论(0)    收藏  举报