Python3的time模块是处理时间相关操作的核心模块,其中的time函数是获取当前时间最基础的方法,它的输出结果有固定的规则,同时也可以通过配套方法实现不同形式的输出。

time函数的基础输出
time函数不需要传入任何参数,调用后会直接返回一个浮点数,这个数值代表从1970年1月1日00:00:00(UTC时间)到当前时刻经过的秒数,也就是我们常说的时间戳。需要注意的是,这个时间戳是UTC时间,不包含时区偏移。
基础调用示例如下:
import time
# 调用time函数获取时间戳
timestamp = time.time()
print("原始时间戳输出:", timestamp)
运行上述代码后,会得到类似1698765432.123456这样的输出,整数部分是从 epoch 到当前的秒数,小数部分是微秒级别的精度。
将time函数输出转换为可读时间
原始的时间戳可读性较差,实际开发中通常需要将其转换为人类可读的时间格式,time模块提供了多个方法来实现这个需求。
转换为本地时间结构
使用localtime()方法可以将时间戳转换为当前时区的struct_time时间结构,这个结构包含了年、月、日、时、分、秒等各个时间字段。
import time
timestamp = time.time()
# 转换为本地时间结构
local_time = time.localtime(timestamp)
print("本地时间结构:", local_time)
# 访问时间结构的各个字段
print("当前年份:", local_time.tm_year)
print("当前月份:", local_time.tm_mon)
print("当前日期:", local_time.tm_mday)
转换为UTC时间结构
如果需要获取UTC时区的时间结构,可以使用gmtime()方法,用法和localtime()类似:
import time
timestamp = time.time()
# 转换为UTC时间结构
utc_time = time.gmtime(timestamp)
print("UTC时间结构:", utc_time)
转换为格式化字符串
strftime()方法可以将struct_time时间结构按照指定的格式转换为字符串,常用的格式符号有%Y(四位年份)、%m(两位月份)、%d(两位日期)、%H(24小时制小时)、%M(分钟)、%S(秒)等。
import time
timestamp = time.time()
local_time = time.localtime(timestamp)
# 转换为格式化时间字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化时间输出:", formatted_time)
# 自定义其他格式
custom_format = time.strftime("%Y年%m月%d日 星期%w %H时%M分%S秒", local_time)
print("自定义格式输出:", custom_format)
常见输出场景汇总
下面整理了time函数不同输出形式的使用场景和对应代码示例:
| 输出需求 | 实现方法 | 代码示例 |
|---|---|---|
| 获取原始时间戳 | 直接调用time() | time.time() |
| 获取本地时间结构 | time.localtime(时间戳) | time.localtime(time.time()) |
| 获取UTC时间结构 | time.gmtime(时间戳) | time.gmtime(time.time()) |
| 获取格式化时间字符串 | time.strftime(格式, 时间结构) | time.strftime("%Y-%m-%d", time.localtime()) |
| 获取可读的字符串时间 | time.ctime(时间戳) | time.ctime(time.time()) |
注意事项
- time函数返回的时间戳是浮点数,如果需要整数秒数,可以使用
int(time.time())进行转换。 - 不同操作系统下time函数的精度可能有差异,部分系统的小数部分精度会更高。
- 如果传入
localtime()或gmtime()的时间戳参数,默认会使用当前时间戳,也就是可以不传入参数直接调用这两个方法。
通过以上方法,我们可以根据实际需求灵活输出time函数的结果,满足不同场景下的时间处理需求。