您的位置:

Python库:time的实用函数与用法介绍

时间,是我们生命中最珍贵的资源之一,也是计算机程序中最常用的资源之一。在 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 模块是处理时间相关操作的必备工具之一,学好它可以让你的程序更加高效、稳定、可靠。