该strftime()方法使用date、time或datetime对象返回表示日期和时间的字符串。
示例 1:使用 strftime() 将日期时间转换为字符串
下面的程序将datetime包含当前日期和时间的对象转换 为不同的字符串格式。
from datetime import datetime now = datetime.now() # current date and time 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)
运行程序时,输出将类似于:
年份:2018 月份:12 天:24 时间:04:59:31 日期和时间:2018/12/24,04:59:31
这里, 年, 日, 时间 和 约会时间 是字符串,而 现在是一个datetime对象。
strftime() 如何工作?
在上面的程序中%Y,%m、%d等是格式代码。该strftime()方法将一个或多个格式代码作为参数,并基于它返回一个格式化的字符串。
- 我们datetime从datetime模块中导入了类。这是因为datetime类的对象可以访问strftime()方法。
- datetime包含当前日期和时间的对象存储在现在 多变的。
- 该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)
当你运行程序时,输出将是:
日期时间对象:2018-06-12 09:55:22 输出 2:06/12/2018,09:55:22 产出 3:2018 年 6 月 12 日 产出 4:2018 年 6 月 12 日 输出 5:09AM
格式代码列表
下表显示了您可以传递给该strftime()方法的所有代码。
指示 | 意义 | 例子 |
---|---|---|
%a | 缩写的工作日名称。 | 周日、周一、… |
%A | 完整的工作日名称。 | 星期天星期一, … |
%w | 工作日为十进制数。 | 0, 1, …, 6 |
%d | 以零填充小数表示的月份中的第几天。 | 01, 02, …, 31 |
%-d | 以十进制数表示的月份中的第几天。 | 1, 2, …, 30 |
%b | 缩写的月份名称。 | 一月、二月、…、十二月 |
%B | 完整的月份名称。 | 一月二月, … |
%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。 | 上午下午 |
%M | 分钟作为用零填充的十进制数。 | 00, 01, …, 59 |
%-M | 分钟作为十进制数。 | 0, 1, …, 59 |
%S | 第二个是用零填充的十进制数。 | 00, 01, …, 59 |
%-S | 第二个是十进制数。 | 0, 1, …, 59 |
%f | 微秒为十进制数,左侧补零。 | 000000 - 999999 |
%z | +HHMM 或 -HHMM 形式的 UTC 偏移量。 | |
%Z | 时区名称。 | |
%j | 以零填充的十进制数表示的一年中的第几天。 | 001, 002, …, 366 |
%-j | 以十进制数表示的一年中的第几天。 | 1, 2, …, 366 |
%U | 一年中的周数(星期日作为一周的第一天)。新年第一个星期日之前的所有日子都被视为第 0 周。 | 00, 01, …, 53 |
%W | 一年中的周数(星期一作为一周的第一天)。新年中第一个星期一之前的所有日子都被视为第 0 周。 | 00, 01, …, 53 |
%c | 区域设置的适当日期和时间表示。 | 2013 年 9 月 30 日星期一 07:06:05 |
%x | 区域设置的适当日期表示。 | 13 年 9 月 30 日 |
%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)
当你运行程序时,输出将是:
输出 1:2018 年 6 月 12 日星期二 09:55:22 输出 2:06/12/18 输出 3:09:55:22
格式代码%c,%x以及%X用于语言环境的适当的日期和时间表示。
我们还建议您检查Python strptime()。该strptime()方法datetime从字符串创建一个对象。