Menu Close

Python strftime()

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

strftime()方法使用日期,时间或 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

这里,yeardaytimedate_time是字符串,而nowdatetime对象。


strftime()如何工作?

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

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

    Import datetime module in Python

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

    datetime object containing current date and time

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

    Python strftime() example

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

    Python strftime() example


示例 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, 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
%% 字面值%字符。 %

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

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
评论区评论发表10个有质量的评论,可以联系我们 申请作者权限.

发表回复

您的电子邮箱地址不会被公开。

Leave the field below empty!

Posted in Python教程

Related Posts