Python strftime()
在本文中,您将学习如何将日期,时间和日期时间对象转换为其等效的字符串(借助示例)
strftime()方法使用日期,时间或 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)
运行程序时,输出将如下所示:
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 |
%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对象。