Python strftime()
Python strftime()
在本文中,您将学习将日期、时间和日期时间对象转换为其等效字符串(借助示例)
视频:Python 中的日期和时间
strftime()
方法使用日期、时间或日期时间对象返回一个表示日期和时间的字符串。
示例 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
这里,年 , 天 , 时间 和 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 | 工作日的缩写。 | 周日、周一、... |
%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 | 语言环境的上午或下午。 | 上午,下午 |
%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 | 语言环境的适当日期表示。 | 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
字符串中的对象。
Python