1. 首页
  2. 技术文章

46、Python strftime()

在本文中,您将学习如何将日期,时间和日期时间对象转换为其等效的字符串(借助示例)

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)	

当您运行该程序时,输出将如下所示:


year: 2018
month: 12
day: 24
time: 04:59:31
date and time: 12/24/2018, 04:59:31

这里,yeardaytime 和date_time 是字符串,而 now是一个datetime对象。


strftime()如何工作?

在上述程序中,%Y%m%d等是格式码。该strftime()方法将一个或多个格式代码作为参数,并基于该方法返回格式化的字符串。

  1. 我们datetimedatetime模块导入了类。这是因为datetime类的对象可以访问strftime()方法。
    在Python中导入datetime模块
  2. datetime包含当前日期和时间的对象存储在现在 多变的。
    包含当前日期和时间的datetime对象
  3. strftime()方法可用于创建格式化的字符串。
    Python strftime()示例
  4. 您传递给该strftime()方法的字符串可能包含多个格式代码。
    Python 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 UTC偏移量,格式为+ HHMM或-HHMM。
%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)

运行该程序时,输出为:


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从字符串创建对象。

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ1841324605,本站将立刻清除。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

服务热线:130-0886-1890

QR code