上一章Python教程请查看:python3处理时间和日期:datetime模块
在本文中,你将学习如何将date、time和datetime对象转换为它的等效字符串(通过示例)
strftime方法使用date、time或datetime对象返回一个表示日期和时间的字符串。
示例1:使用strftime()将datetime转换为字符串
下面的程序将一个包含当前日期和时间的datetime对象转换为不同的字符串格式。
from datetime import datetime
now = datetime.now() # 当前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、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("输出 2:", d)
d = date_time.strftime("%d %b, %Y")
print("输出 3:", d)
d = date_time.strftime("%d %B, %Y")
print("输出 4:", d)
d = date_time.strftime("%I%p")
print("输出 5:", d)
格式代码列表
下表显示了可以传递给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 etc. |
%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 |
%% | 文字’%’字符。 | % |
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("输出 1:", d)
d = date_time.strftime("%x")
print("输出 2:", d)
d = date_time.strftime("%X")
print("输出 3:", d)
格式化代码%c、%x和%x用于区域设置的适当日期和时间表示。
我们还建议你查看Python strptime(),方法的作用是:从字符串中创建一个datetime对象。
评论前必须登录!
注册