Python 中的 strftime() 函数

2024 年 08 月 29 日 | 阅读 9 分钟

在本节中,我们将学习 Python 编程语言中的 strftime() 函数如何操作及其一些变体。

那么,让我们开始吧。

为了实现各种类型的数据功能,Python 提供了许多模块,每个模块都包含一组函数。Python 的 time 模块用于在任何地方实现基于不同时间戳的操作。

此外,Python 函数 strftime() 接受各种格式的时间,并输出以标准形式表示时间的字符串。

使用 Python strftime() 函数获取当前时间

要根据格式代码以正确的格式检索当前时间戳,我们可以将 Python strftime() 函数与 datetime 模块一起使用。

Python 的 strftime() 函数是一个强大的工具,用于在 Python 中处理日期和时间。它用于以特定格式格式化日期和时间。使用 strftime(),您可以轻松地以满足您需求的方式在 Python 中检索当前时间。

使用 strftime() 函数的基本语法如下

语法

这里,strftime() 函数的 format codes 参数实际上是指用于以标准化和适当的方式表示时间戳的预定义代码。在本教程中,我们将深入学习更多关于格式代码的知识。

其中 format 是用于格式化日期和时间的格式字符串,t 是一个可选参数,表示时间为元组或 struct_time 对象。如果未提供 t,则函数将使用当前本地时间。

但在此之前,让我们考虑一些示例。

示例

输出

Present Time: 16 : 05 : 25
Present Date: 05 - 06 - 2023

说明

对于前面提到的示例,我们从 datetime 库中导入了 datetime 模块。然后,当前日期和时间存储在我们指定的变量中。然后使用 strftime() 函数表示当前日期和时间,并以所选格式显示给用户。因此,当前日期和时间已以正确且可接受的方式正确打印。

示例 2

要获取 Python 中的当前时间,您可以使用 %H:%M:%S 格式字符串,它将时间格式化为小时:分钟:秒。以下是使用 strftime() 获取当前时间的示例

在此示例中,我们导入 datetime 模块并使用 now() 方法获取当前日期和时间。然后,我们将当前日期和时间与格式字符串 %H:%M:%S 一起传递给 strftime() 方法。最后,我们打印当前时间。

上面代码的输出将是这样的

Current Time = 14:30:45

如您所见,strftime() 函数以指定格式返回当前时间。您可以更改格式字符串以获取不同格式的时间。例如,%I:%M:%S %p 将以 12 小时格式返回时间,带有 AM/PM 指示符,而 %Y-%m-%d %H:%M:%S 将以 ISO 8601 格式返回时间。

除了时间,您还可以使用 strftime() 格式化日期、星期几、月份和年份。

上面代码的输出将取决于执行时的当前日期和时间。例如,如果代码在 2023 年 4 月 27 日执行,则输出可能为

Current Date = 27-04-2023
Today is Thursday
Current month is April
Current year is 2023

说明

strftime() 函数是用于在 Python 中处理日期和时间的强大工具。通过使用正确的格式字符串,您可以轻松地以任何您想要的方式格式化日期和时间。

将 Python strftime() 函数与预定义时间戳一起使用

有时,我们希望显示旧数据集的日期和时间。可以使用 Python strftime() 方法执行相同的操作。

datetime 模块的 fromtimestamp() 方法帮助用户检索预定义的时间戳。此外,我们可以使用 strftime() 函数,如前所述,利用各种格式代码以常用方式表示检索到的时间戳。

要使用 strftime(),您首先需要创建一个表示要格式化的时间戳的 datetime 对象。这可以使用 datetime 构造函数完成,该构造函数接受年份、月份、日期、小时、分钟、秒和微秒的参数。拥有 datetime 对象后,您可以对其调用 strftime() 函数以生成格式化字符串。

Python 的 strftime() 函数是一个强大的工具,用于以人类可读和机器可读的方式格式化日期和时间。它允许开发人员将时间戳转换为表示特定日期和时间的格式化字符串。

strftime() 函数是 Python 的 datetime 模块的一部分,该模块包含在标准库中。该函数接受一个时间戳作为参数和一个指定输出所需格式的字符串。格式字符串可以包含各种占位符,每个占位符表示一个特定的日期或时间组件。例如,%Y 表示年份,%m 表示月份,%d 表示日期,等等。

我们可以看到 strftime() 函数的用法语法如下

语法

现在,让我们考虑一个示例,说明 strftime() 函数与预定义时间戳一起工作的情况。

示例

输出

Time as per the provided Timestamp: 09 : 15 : 23
Date as per the provided Timestamp: 19 - 08 - 1973

说明

然后,在前面提到的示例中定义了包含预定时间戳值的变量。然后使用 fromtimestamp() 技术检索保存的值,然后使用 strftime() 函数以有效且可接受的方式表示检索到的时间戳。然后,用户看到了我们打印的最终值。因此,时间戳已成功以正确的格式表示。

将各种格式代码与 Python strftime() 函数一起使用

Python 的 strftime() 函数使用许多格式代码来维护和标准化日期和时间的表示。此外,这些格式代码可以用于从时间戳中单独显示小时、天、周等等。

让我们考虑一个表示格式代码用法的示例。

示例

输出

Present Day: Tuesday

说明

对于前面提到的示例,我们从 time 模块导入了 strftime 函数。strftime() 函数和输入 "%A" 用于创建存储当前日期本地时间格式代码的变量。然后,这些值已打印给用户。因此,程序已打印出完整的一周中的天数名称。

现在让我们考虑更多使用其他格式代码的示例。

1. 使用 "%c" 作为格式代码以以下格式显示当前本地时间

日 月 日期 小时:分钟:秒 年

示例

输出

Present Timestamp: Wed Jun  2 16:06:41 2021

说明

在上面的程序中,我们再次执行了与之前相同的过程。但是,我们使用了 "%c" 作为格式代码。因此,程序已以上面指定的格式代码打印了当前时间戳。

2. 使用 "%R" 作为格式代码以 24 小时格式表示时间。

示例

输出

Present Time in 24-hour format: 16:14

说明

我们再次遵循了上面程序中的相同语法,但我们包含了格式代码 "%R" 以 24 小时格式显示当前时间。

3. 使用 "%r" 作为格式代码以 12 小时格式或小时:分钟:秒格式表示时间以及 AM 或 PM 符号。

示例

输出

Present Time in 12-hour format: 04:33:12 PM

说明

与我们之前所做的类似,我们将 "%r" 添加为 strftime() 函数的参数,以 12 小时格式打印当前时间。

4. 在单个函数中使用多个格式代码。

示例

输出

Present Timestamp: 06/02/21 -- 16:44:11 PM

说明

为了根据本地时间戳显示日期,我们在上面的示例中使用了格式代码 "%x"。除了使用格式代码 "%p" 指示当前时间的符号,即 AM 或 PM,我们还使用了格式代码 "%X" 以 24 小时格式显示时间。

除了上面列出的格式代码之外,还有几种格式代码可用。此格式代码列表包括

序号。格式代码描述
1%a星期几的缩写名称
2%A星期几的完整名称
3%b月份的缩写名称
4%B月份的完整名称
5%c选择的日期和时间表示
6%C世纪数(年份除以 100,范围从 00 到 99)
7%d月份日期(范围从 01 到 31)
8%D%m / %d / %y 类似的功能
9%e月份日期(范围从 1 到 31)
10%g%G 类似的功能;但是,值打印时没有世纪
11%G与 ISO 周数等效的 4 位年份(参见 %V
12%h%b 类似的功能
13%H小时,使用 24 小时制(范围从 00 到 23)
14%I小时,使用 12 小时制(范围从 01 到 12)
15%j年份日期(范围从 001 到 366)
16%m月份(范围从 01 到 12)
17%M分钟
18%n换行符
19%p根据提供的时间值,可以是 AM 或 PM
20%rAM 和 PM 符号的时间
21%R24 小时制时间
22%S第二个
23%t制表符
24%T当前时间,等于 "%H:%M:%S" 格式
25%u以数字表示的星期几(范围从 1 到 7),其中星期一被视为 1。警告:在 Sun Solaris 中,星期日被视为 1。
26%U当前年份的周数,从第一个星期日作为第一周的第一天开始。
27%V当前年份的 ISO 8601 周数(范围从 01 到 53),其中第 1 周是当前年份中至少有四天的第一周,并且星期一被视为第一天
28%w以十进制表示的星期几,其中星期日被视为 0。
29%W当前年份的周数,从第一个星期一作为第一周的第一天开始。
30%x不带时间的日期选择表示
31%X不带日期的时间选择表示
32%y没有世纪的年份(范围从 00 到 99)
33%Y带有世纪的年份
34%z 或 %Z时区或名称或缩写
35%%实际的 % 字符