Python time 模块

在 Python 中,time 模块偏重于底层平台,该模块中大多数函数会调用当前计算机的 C 链接库。后面介绍的 datetime 模块也是基于 time 模块实现的。

Python time 获取时间

在 Python 中,我们可以使用 time 模块的各种函数来操作时间。

语法:

import time
time. 函数名 ()

说明:

time 模块内置的函数非常多,不过常用的只有 3 种,如下表所示。

time 模块常用函数
方法 说明
time() 获取当前时间戳
localtime( 时间戳 ) 将 “时间戳” 转化为 “本地时间”
strftime( 格式化字符串 , 本地时间 ) 将 “本地时间” 转化为 “指定格式”

时间戳是什么?

所谓的时间戳,指的是从 1970 年 1 月 1 日 0 分 0 秒到当前时间的总秒数。无论在哪一种语言中,时间戳都是一种非常有用的东西。

使用 time 模块,如果想要获取当前时间,需要以下 3 步。

① time() 获取时间戳

import time
print(time.time())

运行结果如下。

1667128377.2994165

② localtime() 将时间戳转化为本地时间

import time
local = time.localtime(time.time())
print(local)

运行结果如下。

time.struct_time(tm_year=2025, tm_mon=5, tm_mday=20, tm_hour=13, tm_min=14, tm_sec=30, tm_wday=6, tm_yday=136, tm_isdst=0)

③ strftime() 将本地时间转化为想要的格式

import time
local = time.localtime(time.time())
result = time.strftime('%Y-%m-%d', local)
print(result)

运行结果如下。

2025-05-20

提示: time.localtime() 获取的是当前的本地时间,实际上 time.localtime() 和 time.localtime(time.time()) 两者是等价的。

Python time 格式化时间

在 Python 中,我们可以使用 time 模块的 strftime() 函数来将时间进行格式化。时间格式化,指的是将时间转化为想要的格式(自定义格式)。

其中,strftime 是 “string format time” 的缩写。

语法:

time.strftime(format, tuple)

说明:

参数 format 是格式,tuple 是一个元组。其中,format 中常用的格式化符号如下表所示。

时间格式化符号
符号 说明
%Y 年,如 2025
%m 月,01~12
%d 日,01~31
%H 时,00~23
%M 分,00~59
%S 秒,00~59
%a 简写星期,例如 Mon、Tues、Wed 等
%A 完整星期,例如 Monday、Tuesday、Wednesday 等

在实际开发中,我们可以使用这些格式化符号自由组合,以得到想要的时间格式。

示例 1:time 获取完整时间

import time

local = time.localtime(time.time())
result = time.strftime('当前时间是:%Y-%m-%d %H:%M:%S %A', local)
print(result)

运行结果如下。

当前时间是:2025-05-20 13:14:30 Monday

分析:

如果想要单独获取年、月、日,或者时、分、秒,此时应该怎么做呢?其实很简单,我们只需要使用正确的单个格式符就可以实现了。

示例 2:time 获取年、月、日

import time

local = time.localtime(time.time())
year = time.strftime('%Y', local)
month = time.strftime('%m', local)
day = time.strftime('%d', local)

print('年:', year)
print('月:', month)
print('日:', day)

运行结果如下。

年:2025
月:05
日:20

分析:

想要单独获取年份,strftime() 的第 1 个参数应该是 “%Y”。想要单独获取月份,strftime() 的第 1 个参数应该是 “%m”。

示例 3:time 获取时分秒

import time

local = time.localtime(time.time())
hour = time.strftime('%H', local)
minute = time.strftime('%M', local)
second = time.strftime('%S', local)

print('时:', hour)
print('分:', minute)
print('秒:', second)

运行结果如下。

时:13
分:14
秒:30

分析:

可能有小伙伴就会问了:如果希望输出的是 “星期一”,而不是 “Monday” 这样的格式,应该怎么做呢?我们可以使用一个字典来实现。

示例 4:time 获取星期几

import time

days = {
    'Monday': '星期一',
    'Tuesday': '星期二', 
    'Wednesday': '星期三',
    'Thursday': '星期四',
    'Friday': '星期五', 
    'Saturday': '星期六', 
    'Sunday': '星期日'
}
local = time.localtime(time.time())
wd = time.strftime('%A', local)
result = days[wd]
print(result)

运行结果如下。

星期一

分析:

这个示例定义了一个字典 days。该字典的键是英文星期几,值是中文星期几。因此我们只需要拿到英文星期几,就可以获取对应的中文星期几了。

struct_time 元组

从前面可以知道,使用 time 模块来获取时间需要 3 步,其中第 2 步获取的本地时间就是一个 struct_time 元组。

struct_time 元组共有 9 个元素:年、月、日、时、分、秒、星期几、一年中第几天、是否为夏令时。struct_time 元组的属性如下表所示。

struct_time 元组的属性
属性 说明
tm_year 年,如 2025
tm_mon 月,1~12
tm_mday 日,1~31
tm_hour 时,00~23
tm_min 分,00~59
tm_sec 秒,00~59
tm_wday 星期几,0~6,其中 0 是星期一
tm_yday 一年的第几日,1~366
tm_isdst 夏令时

接下来尝试使用 struct_time 元组来获取年月日、时分秒以及星期几。

示例 5:使用 struct_time 元组获取年、月、日

import time

local = time.localtime()
year = local.tm_year
month = local.tm_mon
day = local.tm_mday

print('年:', year)
print('月:', month)
print('日:', day)

运行结果如下。

年:2025
月:5
日:20

示例 6:使用 struct_time 元组获取时、分、秒

import time

local = time.localtime()
hour = local.tm_hour
minute = local.tm_min
second = local.tm_sec

print('时:', hour)
print('分:', minute)
print('秒:', second)

运行结果如下。

时:13
分:14
秒:30

示例 7:使用 struct_time 元组获取星期几

import time

days = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
local = time.localtime()
wd = local.tm_wday
print(days[wd])

运行结果如下。

星期一

分析:

上面定义了一个列表 days,用来存储 0~6 对应是星期几。变量 local 其实就是一个 struct_time 元组,local.tm_wday 返回表示当前星期几的数字。然后通过该数字就可以找到 days 中对应的星期几了。

对于年、月、日、时、分、秒,如果是使用 time 模块,我们有 2 种方式可以实现:① 格式化符号;② struct_time 元组。

上一篇: Python pip 命令

下一篇: Python datetime 模块

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号