Python 时间格式化

在 Python 中,想要将时间格式化,可以使用以下 2 个模块来实现。

  • time 模块
  • datetime 模块

使用 time 模块实现时间格式化

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

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

语法:

time.strftime(format, tuple)

说明:

参数 format 是格式,tuple 是一个 struct_time 元组。其中,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()
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()
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()
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()
wd = time.strftime('%A', local)
result = days[wd]

print(result)

运行结果如下。

星期一

分析:

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

使用 datetime 模块实现时间格式化

在 Python 中,我们可以使用 datetime.datetime.now() 方法来获取当前日期时间,该方法会返回 datetime 对象。datetime 对象有一个 strftime() 方法,可以用于格式化时间。

需要注意的是,虽然 datetime 对象的 strftime() 方法和 time 模块的 strftime() 函数使用的格式化符号是完全一样的,但它们在调用语法上有所区别。

语法:

import datetime as dt

# 先获取 datetime 对象
now = dt.datetime.now()

# 然后调用对象的 strftime() 方法,只需要传入格式字符串
now.strftime(format)

说明:

参数 format 是时间格式化字符串。注意,与 time 模块不同,这里的 strftime() 是对象自身的方法,因此不需要额外传入时间元组。

示例 5:datetime 格式化时间

import datetime as dt

now = dt.datetime.now()
result = now.strftime('当前时间是:%Y-%m-%d %H:%M:%S %A')
print(result)

运行结果如下。

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

分析:

如果想要单独获取年、月、日,或者时、分、秒,同样只需要使用正确的单个格式符就可以实现了。

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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