编辑这个页面须要登录或更高权限!

Python strftime()

在本文中,您将学习如何将date、time和datetime对象转换为它的等效字符串(通过示例)

strftime()方法使用datetimedatetime对象返回表示日期和时间的字符串。

示例1:使用strftime()将日期时间转换为字符串

下面的程序将datetime包含当前日期和时间的对象转换  为不同格式的字符串。

from datetime import datetime

now = datetime.now() # 当前的日期和时间

year = now.strftime("%Y")
print("年:", year)

month = now.strftime("%m")
print("月:", month)

day = now.strftime("%d")
print("日:", day)

time = now.strftime("%H:%M:%S")
print("时间:", time)

date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("日期和时间:",date_time)

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

年: 2020
月: 04
日: 13
时间: 17:35:22
日期和时间: 04/13/2020, 17:35:22

在这里,yeardaytimedate_time是字符串,而now是一个datetime对象。

strftime()如何工作?

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

  1. 我们datetime从datetime模块导入了类。这是因为datetime类的对象可以访问strftime()方法。
    在Python中导入datetime模块
     

  2. datetime包含当前日期和时间的对象存储在now变量中。
    包含当前日期和时间的datetime对象
     

  3. strftime()方法可用于创建格式化的字符串。
    Python strftime()示例
     

  4. 您传递给strftime()方法的字符串可能包含多个格式代码。
    Python strftime()示例
     

示例2:根据时间戳创建字符串

from datetime import datetime

timestamp = 1578797322
date_time = datetime.fromtimestamp(timestamp)

print("日期时间对象:", 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)

运行该程序时,输出为:

日期时间对象: 2020-01-12 10:48:42
输出 2: 01/12/2020, 10:48:42
输出 3: 12 Jan, 2020
输出 4: 12 January, 2020
输出 5: 10AM

格式代码清单

下表显示了您可以传递给该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 2
%p语言环境的上午或下午。AM,PM
%M分钟,为零填充的十进制数字。00、01,...,59
%-M以十进制数字表示。0,1,...,59
%S第二个为零填充的十进制数。00、01,...,59
%-S第二个十进制数字。0,1,...,59
%f微秒,十进制数,在左侧补零。000000-999999
%zUTC偏移量,格式为+ 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 2019
%x语言环境的适当日期表示形式。13/9/30
%X语言环境的适当时间表示形式。07:06:05
%%文字“%”字符。

示例3:语言环境的适当日期和时间

from datetime import datetime

timestamp = 1578797322
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)

运行该程序时,输出为:

输出 1: Sun Jan 12 10:48:42 2020
输出 2: 01/12/20
输出 3: 10:48:42

格式代码%c,%x以及%X用于语言环境的适当的日期和时间表示。

我们还建议您检查Python strptime()。strptime()方法从字符串创建datetime对象。

Python 基础教程
Python 流程控制
Python 函数
Python 数据类型
Python 文件操作
Python 对象和类
Python 日期和时间
Python 高级知识
Python 参考手册