Python标准库 - time
Python 的标准函数“time”提供不少处理时间的方法,除了可以取得目前的时间或转换时间,也能够通过像是 sleep() 的方法将程序暂停,进一步做出许多跟时间有关的应用。
time 常用方法
下方列出几种 time 模块常用的方法:
方法 | 参数 | 说明 |
---|---|---|
time() | 返回到目前为止的秒数 | |
sleep() | sec | 将程序暂停指定的秒数 |
ctime() | t | 转换为本地时间 |
localtime()、time.gmtime() | t | 转换为 struct_time 格式的时间 |
mktime() | t | 转换 struct_time 格式的时间为秒数 |
asctime() | t | 转换 struct_time 格式的时间为文字 |
strftime()、time.strptime() | t | 返回特定格式字符串所表示的时间 |
import time
要使用 time 必须先 import time 模块,或使用 from 的方式,单独 import 特定的包。
import time
from time import sleep
time()
time.time() 执行后会返回 1970 年 1 月 1 日 00:00:00 到现在的秒数 ( 精确度到 1/1000000 秒 ),秒数使用浮点数 float 的格式,如果改成 time.time_ns() 会返回 ns 数 ( 1/1000000000 秒 )
import time
print(time.time()) # 1634629287.537577
print(time.time_ns()) # 1634629287537744648
sleep(sec)
time.sleep(sec) 能将程序 暂停指定的秒数,停止结束后,再继续后面的程序。
import time
print(time.ctime(time.time())) # Tue Oct 19 07:59:19 2021
time.sleep(2) # 暂停两秒
print(time.ctime(time.time())) # Tue Oct 19 07:59:21 2021
ctime(t)
time.ctime(t) 能将 time.time(t) 得到的时间,转换为本地时间。
import time
t = time.time()
print(time.ctime(t)) # Tue Oct 19 07:47:58 2021
localtime(t), time.gmtime(t)
time.localtime(t) 和 time.gmtime(t) 能将 time.time() 得到的时间,转换为 struct_time 格式的本地时间 ( 差别在于 time.gmtime(t) 是返回 UTC 时间 )。
import time
t = time.time()
print(time.localtime(t))
# time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=8, tm_min=8, tm_sec=28, tm_wday=1, tm_yday=292, tm_isdst=0)
按照下方的做法,就能使用 struct_time 格式的时间。
import time
t = time.time()
tt = time.localtime(t)
print(tt.tm_year) # 2021
print(tt.tm_mon) # 10
mktime(t)
time.mktime(t) 可以将 struct_time 格式的时间转换回秒数。
import time
t = time.time()
t1 = time.localtime(t)
t2 = time.mktime(t1)
print(t) # 1634631418.445556
print(t1) # time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=8, tm_min=16, tm_sec=58, tm_wday=1, tm_yday=292, tm_isdst=0)
print(t2) # 1634631418.0
asctime()
time.asctime(t) 可以将 struct_time 格式的时间转换为文字显示。
import time
t = time.time()
t1 = time.localtime(t)
t2 = time.asctime(t1)
print(t) # 1634631577.3905456
print(t1) # time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=8, tm_min=19, tm_sec=37, tm_wday=1, tm_yday=292, tm_isdst=0)
print(t2) # Tue Oct 19 08:19:37 2021
strftime(t), time.strptime(t)
time.strftime(t) 可以将时间转换为特定格式字符串,time.strptime(t) 则会将特定格式的字符串,转换为 struct_time 格式的时间 ( 详细可参考 "strftime() 和 strptime()") )
import time
t = time.time()
t1 = time.localtime(t)
t2 = time.strftime('%Y/%m/%d %H:%M:%S',t1)
t3 = time.strptime(t2, '%Y/%m/%d %H:%M:%S')
print(t) # 1634632136.9454331
print(t1) # time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=8, tm_min=28, tm_sec=56, tm_wday=1, tm_yday=292, tm_isdst=0)
print(t2) # 2021/10/19 08:28:56
print(t3) # time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=8, tm_min=28, tm_sec=56, tm_wday=1, tm_yday=292, tm_isdst=-1)
转载自:https://juejin.cn/post/7401703734855843840