Python strftime() 函数
提示
- 时间格式化:Python中的
strftime()
方法允许将datetime
对象转换为不同的字符串格式。 - 格式代码应用:
strftime()
使用格式代码(如%Y
,%m
,%d
等)来定义日期和时间的显示格式。 - 多样化日期表示:通过
strftime()
,可以灵活创建多种日期时间格式,包括本地化的日期和时间表示。
[strftime()
方法使用date、time或datetime对象返回表示日期和时间的字符串。
示例1:使用strftime()将datetime转换为字符串
下面的程序将包含当前日期和时间的datetime
对象转换为不同的字符串格式。
from datetime import datetime
now = datetime.now() # 当前日期和时间
year = now.strftime("%Y")
print("year:", year)
month = now.strftime("%m")
print("month:", month)
day = now.strftime("%d")
print("day:", day)
time = now.strftime("%H:%M:%S")
print("time:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)
当您运行程序时,输出将如下所示:
year: 2018
month: 12
day: 24
time: 04:59:31
date and time: 12/24/2018, 04:59:31
在这里,year、day、time和date_time是字符串,而now是一个datetime
对象。
strftime()如何工作?
在上述程序中,%Y
、%m
、%d
等是格式代码。strftime()
方法接受一个或多个格式代码作为参数,并基于此返回格式化的字符串。
-
我们从
datetime
模块导入 了datetime
类。这是因为datetime
类的对象可以访问strftime()
方法。 -
包含当前日期和时间的
datetime
对象存储在now变量中。 -
strftime()
方法可用于创建格式化的字符串。 -
传递给
strftime()
方法的字符串可能包含多个格式代码。
示例2:从时间戳创建字符串
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Date time object:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Output 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Output 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Output 4:", d)
d = date_time.strftime("%I%p")
print("Output 5:", d)
当您运行程序时,输出将是:
Date time object: 2018-06-12 09:55:22
Output 2: 06/12/2018, 09:55:22
Output 3: 12 Jun, 2018
Output 4: 12 June, 2018
Output 5: 09AM
格式代码列表
下表显示了您可以传递给strftime()
方法的所有代码。
指令 | 含义 | 示例 |
---|---|---|
%a | 缩写的星期名 | Sun, Mon, ... |
%A | 完整的星期名 | Sunday, Monday, ... |
%w | 十进制数字表示的星期 | 0, 1, ..., 6 |
%d | 月份中的日子,零填充的十进制数 | 01, 02, ..., 31 |
%-d | 月份中的日子,十进制数 | 1, 2, ..., 30 |
%b | 缩写的月份名 | Jan, Feb, ..., Dec |
%B | 完整的月份名 | January, February, ... |
%m | 月份,零填充的十进制数 | 01, 02, ..., 12 |
%-m | 月份,十进制数 | 1, 2, ..., 12 |
%y | 世纪年份,零填充的十进制数 | 00, 01, ..., 99 |
%-y | 世纪年份,十进制数 | 0, 1, ..., 99 |
%Y | 世纪年份,十进制数 | 2013, 2019等 |
%H | 小时(24小时制),零填充的十进制数 | 00, 01, ..., 23 |
%-H | 小时(24小时制),十进制数 | 0, 1, ..., 23 |
%I | 小时(12小时制),零填充的十进制数 | 01, 02, ..., 12 |
%-I | 小时(12小时制),十进制数 | 1, 2, ... 12 |
%p | 本地的AM或PM | AM, PM |
%M | 分钟,零填充的十进制数 | 00, 01, ..., 59 |
%-M | 分钟,十进制数 | 0, 1, ..., 59 |
%S | 秒,零填充的十进制数 | 00, 01, ..., 59 |
%-S | 秒,十进制数 | 0, 1, ..., 59 |
%f | 微秒,左边零填充的十进制数 | 000000 - 999999 |
%z | UTC偏移量,形式为+HHMM或-HHMM | |
%Z | 时区名称 | |
%j | 年份中的日子,零填充的十进制数 | 001, 002, ..., 366 |
%-j | 年份中的日子,十进制数 | 1, 2, ..., 366 |
%U | 年份中的星期数(星期日作为第一天)。新年前的所有日子被认为是第0周 | 00, 01, ..., 53 |
%W | 年份中的星期数(星期一作为第一天)。新年前的所有日子被认为是第0周 | 00, 01, ..., 53 |
%c | 本地的适当日期和时间表示 | Mon Sep 30 07:06:05 2013 |
%x | 本地的适当日期表示 | 09/30/13 |
%X | 本地的适当时间表示 | 07:06:05 |
%% | 字面上的'%'字符 | % |
示例3:本地的适当日期和时间
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Output 1:", d)
d = date_time.strftime("%x")
print("Output 2:", d)
d = date_time.strftime("%X")
print("Output 3:", d)
当您运行程序时,输出将是:
Output 1: Tue Jun 12 09:55:22 2018
Output 2: 06/12/18
Output 3: 09:55:22
格式代码%c
、%x
和%X
用于本地的适当日期和时间表示。
我们还建议您查看Python strptime()。strptime()
方法从字符串创建datetime
对象。