时间,是我们生命中最珍贵的资源之一,也是计算机程序中最常用的资源之一。在 Python 中,我们通过 time 模块来处理时间相关数据,它提供了许多实用的函数和用法。本文将会全面介绍 time 模块中常用的函数和用法。
一、time函数的基本使用
time 模块中最常用的函数就是 time() 函数,它会返回当前时间的 Unix 时间戳(从 1970 年 1 月 1 日 00:00:00 UTC 开始计时的秒数),代码如下:
import time now = time.time() print(now)
输出结果类似这样:
1619362884.663994
我们也可以使用 localtime() 函数将 Unix 时间戳转换为本地时间,代码如下:
import time now = time.time() local_time = time.localtime(now) print(local_time)
输出结果类似这样:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=25, tm_hour=22, tm_min=42, tm_sec=57, tm_wday=6, tm_yday=115, tm_isdst=0)
该函数返回一个 struct_time 对象,它表示当前本地时间的各个字段(年、月、日、时、分、秒等)。
二、时间格式化
在 Python 中,我们可以使用 time 模块的 strftime() 函数将 struct_time 对象格式化成指定的字符串,代码如下:
import time now = time.time() local_time = time.localtime(now) format_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time) print(format_time)
输出结果类似这样:
2021-04-25 22:42:57
在这里,我们使用了 %Y、%m、%d、%H、%M、%S 等占位符来指定输出的格式,具体含义如下:
- %Y:年(4 位数)
- %m:月(01-12)
- %d:日(01-31)
- %H:小时(00-23)
- %M:分钟(00-59)
- %S:秒(00-59)
除了格式化时间,我们也可以使用 strptime() 函数将字符串转换为 struct_time 对象,代码如下:
import time format_time = "2021-04-25 22:42:57" local_time = time.strptime(format_time, "%Y-%m-%d %H:%M:%S") print(local_time)
输出结果类似这样:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=25, tm_hour=22, tm_min=42, tm_sec=57, tm_wday=6, tm_yday=115, tm_isdst=-1)
其中 %Y、%m、%d、%H、%M、%S 等占位符的含义同上,只是在这里我们使用它们来指定解析字符串的格式。
三、计时器相关函数
在 Python 中,我们也可以使用 time 模块的相关函数来实现计时器功能。其中最常用的是 sleep() 函数,它会让当前线程休眠指定的秒数,代码如下:
import time print("开始等待") time.sleep(5) print("等待结束")
输出结果类似这样:
开始等待 等待结束
除了 sleep() 函数,time 模块中还有 clock() 函数、perf_counter() 函数和 process_time() 函数等常用的计时器函数。
四、定时器相关函数
除了计时器函数,time 模块中还提供了一系列定时器函数,这些函数可以根据指定的时间间隔或日期执行一些操作。下面是常用的定时器函数:
- time.sleep(secs):让当前线程休眠指定的秒数
- time.perf_counter():返回高精度的计时器值
- time.process_time():返回当前进程 CPU 的累计执行时间
- time.monotonic():返回单调时钟的时间(只递增,不会受 NTP 等系统时间同步的影响)
- time.time():返回当前时间的 Unix 时间戳
- time.localtime([seconds]):将 Unix 时间戳转换为本地时间(struct_time 对象)
- time.gmtime([seconds]):将 Unix 时间戳转换为 UTC 时间(struct_time 对象)
- time.strftime(format[, t]):将 struct_time 对象格式化为指定的字符串
- time.strptime(string[, format]):将字符串解析为 struct_time 对象
五、时间模块的应用场景
time 模块在 Python 中的应用非常广泛,包括但不限于以下场景:
- 时间戳的获取和转换
- 时间格式化输出
- 定时器和计时器功能的实现
- 程序执行时间的监测
- 日期的加减和比较操作
- 倒计时和循环等待等操作
- 数据缓存和更新等操作
总之,在 Python 中,time 模块是处理时间相关操作的必备工具之一,学好它可以让你的程序更加高效、稳定、可靠。