likes
comments
collection
share

Python标准库 - time

作者站长头像
站长
· 阅读数 44

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
评论
请登录