跳到主要内容

Python strftime() 函数

提示
  1. 时间格式化:Python中的strftime()方法允许将datetime对象转换为不同的字符串格式。
  2. 格式代码应用strftime()使用格式代码(如%Y, %m, %d等)来定义日期和时间的显示格式。
  3. 多样化日期表示:通过strftime(),可以灵活创建多种日期时间格式,包括本地化的日期和时间表示。

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

示例1:使用strftime()将datetime转换为字符串

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


from datetime import datetime

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

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()方法接受一个或多个格式代码作为参数,并基于此返回格式化的字符串。

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

    导入datetime对象

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

    Python格式代码

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

    Python格式代码

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

    Python格式代码

示例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或PMAM, 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 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对象。