Python教程-Python中的strftime()函数
在本节中,我们将学习Python编程语言中的strftime()函数以及它的一些变种是如何运作的。
那么,让我们开始吧。
为了在数据上执行各种功能,Python提供了一系列包含一组函数的模块。Python的time模块用于实现基于不同时间戳的操作。
此外,Python函数strftime()接受各种格式的时间,并输出一个表示时间的字符串,采用标准形式表示。
使用Python的strftime()函数获取当前时间
为了按格式代码获取当前时间戳,我们可以使用Python的strftime()函数以及datetime模块。
Python的strftime()函数是在Python中处理日期和时间的强大工具。它用于以特定格式格式化日期和时间。使用strftime(),您可以轻松地以满足您需求的方式获取Python中的当前时间。
使用strftime()函数的基本语法如下:
语法:
datetime.now().strftime('format codes') or strftime(format[, t])
这里,strftime()函数的格式代码参数实际上指的是用于以标准化和适当的方式表示时间戳的预定义代码。在本教程中,我们将深入学习更多有关格式代码的内容。
其中,格式是用于格式化日期和时间的格式字符串,t是一个可选参数,表示时间作为元组或struct_time对象。如果未提供t,函数将使用当前本地时间。
但在此之前,让我们考虑一些示例。
示例:
# importing the datetime module into it
from datetime import datetime
# storing the value of current timestamp
cur_timestamp = datetime.now()
# using the strftime() function to represent
# timestamp into proper and standard format
the_time = cur_timestamp.strftime( "%H : %M : %S" )
the_date = cur_timestamp.strftime( "%d - %m - %Y" )
# printing the values
print("The Present Time:", the_time)
print("The Present Date:", the_date)
输出:
Present Time: 16 : 05 : 25
Present Date: 05 - 06 - 2023
解释:
在上面的示例中,我们从datetime库中导入了datetime模块。然后,将当前日期和时间存储在一个变量中。接下来,使用strftime()函数表示当前日期和时间,以所选的格式显示给用户。因此,当前日期和时间已经以正确和可接受的方式打印出来。
示例2:
要在Python中获取当前时间,可以使用"%H:%M:%S"格式字符串,该字符串将时间格式化为小时:分钟:秒。以下是如何使用strftime()获取当前时间的示例:
import datetime
now = datetime.datetime.now()
current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)
上面的示例中,我们导入了datetime模块,并使用now()方法获取当前日期和时间。然后,将当前日期和时间传递给strftime()方法,使用格式字符串"%H:%M:%S"。最后,打印出当前时间。
上面的代码的输出将类似于:
Current Time = 14:30:45
正如您所看到的,strftime()函数以指定的格式返回当前时间。您可以更改格式字符串以获取不同格式的时间。例如,"%I:%M:%S %p"将以AM/PM指示符的12小时制返回时间,而"%Y-%m-%d %H:%M:%S"将以ISO 8601格式返回时间。
除了时间,您还可以使用strftime()来格式化日期、星期、月份和年份。
# Format the date
now = datetime.datetime.now()
current_date = now.strftime("%d-%m-%Y")
print("Current Date =", current_date)
# Format the weekday
now = datetime.datetime.now()
weekday = now.strftime("%A")
print("Today is", weekday)
# Format the month
now = datetime.datetime.now()
month = now.strftime("%B")
print("Current month is", month)
# Format the year
now = datetime.datetime.now()
year = now.strftime("%Y")
print("Current year is", year)
上面的代码的输出将取决于执行代码时的当前日期和时间。例如,如果代码在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()函数是Python datetime模块的一部分,它包含在标准库中。该函数将时间戳作为参数,并使用字符串指定输出的所需格式。格式字符串可以包含各种占位符,每个占位符表示特定的日期或时间组件。例如,%Y表示年份,%m表示月份,%d表示日期等等。
我们可以看到使用strftime()函数的语法如下:
语法:
datetime.fromtimestamp(timestamp).strftime('format code')
现在,让我们考虑一个示例,说明strftime()函数与预定义时间戳的工作方式。
示例:
# importing the datetime module
from datetime import datetime
# provided timestamp
provided_timestamp = 114579923
# storing the value of provided timestamp
my_timestamp = datetime.fromtimestamp(provided_timestamp)
# using the strftime() function to represent
# timestamp into proper and standard format
the_time = my_timestamp.strftime( "%H : %M : %S" )
the_date = my_timestamp.strftime( "%d - %m - %Y" )
# printing the values
print("Time as per the provided Timestamp:", the_time)
print("Date as per the provided Timestamp:", the_date)
输出:
Time as per the provided Timestamp: 09 : 15 : 23
Date as per the provided Timestamp: 19 - 08 - 1973
解释:
在上面的示例中,我们首先定义了包含预定义时间戳值的变量。然后,使用fromtimestamp()方法检索保存的值,然后使用strftime()函数以有效和接受的方式表示检索的时间戳。用户随后看到了打印出的最终值。因此,时间戳已成功以正确的格式表示。
使用Python strftime()函数的各种格式代码
Python的strftime()函数使用许多格式代码来维护和标准化日期和时间的表示。此外,这些格式代码还可以用于从时间戳中单独显示小时、天、周等等。
让我们考虑一个示例,演示格式代码的使用。
示例:
# importing the strftime function
from time import strftime
# using "%A" as the format code
# "%A" displays the current day of the local time
the_day = strftime( "%A" )
# printing the values
print("Present Day:", the_day)
输出:
Present Day: Tuesday
解释:
在上面的示例中,我们从time模块导入了strftime函数。strftime()函数和输入"%A"用于创建一个变量,存储本地时间的当前日期的格式代码。然后将值打印出来。因此,程序已成功打印出完整的星期几名称。
现在让我们考虑一些使用其他格式代码的示例。
1.使用"%c"作为格式代码,以以下格式显示当前本地时间:
星期 月 日期 小时:分钟:秒 年
示例:
# importing the strftime function
from time import strftime
# using "%c" as the format code
# "%c" displays the current local time
the_timestamp = strftime( "%c" )
# printing the values
print("Present Timestamp:", the_timestamp)
输出:
Present Timestamp: Wed Jun 2 16:06:41 2021
解释:
在上面的程序中,我们执行了与之前相同的操作。但是,我们使用了"%c"作为格式代码。因此,程序以上面指定的格式代码打印了当前时间戳。
2.使用"%R"作为格式代码,以24小时制表示时间。
示例:
# importing the strftime function
from time import strftime
# using "%R" as the format code
# "%R" displays the current time in 24-hour format
the_24hour = strftime( "%R" )
# printing the values
print("Present Time in 24-hour format:", the_24hour)
输出:
Present Time in 24-hour format: 16:14
解释:
在上面的程序中,我们再次使用了相同的语法,但是在示例中包含了"%R"作为格式代码,以24小时制显示当前时间。
3.使用"%r"作为格式代码,以12小时制或小时:分钟:秒格式以及AM或PM表示时间。
示例:
# importing the strftime function
from time import strftime
# using "%r" as the format code
# "%r" displays the current local time in H:M:S format
the_time = strftime( "%r" )
# printing the values
print("Present Time in 12-hour format:", the_time)
输出:
Present Time in 12-hour format: 04:33:12 PM
解释:
与之前所做的类似,我们在示例中使用了"%r"作为strftime()函数的参数,以12小时制表示当前时间。
4.在单个函数中使用多个格式代码。
示例:
# importing the strftime function
from time import strftime
# using multiple format code
# "%x" displays the current date
# "%X" displays the current time in 24-hour format
# "%p" provides discriptions for current time i.e., AM or PM
the_timestamp = strftime( "%x -- %X %p" )
# printing the values
print("Present Timestamp:", the_timestamp)
输出:
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 | %r | AM和PM标记的时间 |
21 | %R | 24小时制的时间 |
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周是当前年份中至少有4天的第一周,星期一被视为第一周的第一天 |
28 | %w | 周天以十进制表示,星期天被视为0。 |
29 | %W | 当年的周数,以第一个星期一作为第一周的第一天开始。 |
30 | %x | 仅日期的选定描述,不包括时间 |
31 | %X | 仅时间的选定描述,不包括日期 |
32 | %y | 年份,不包括世纪(范围从00到99) |
33 | %Y | 包括世纪的年份 |
34 | %z或%Z | 时区或名称或缩写 |
35 | %% | 实际的%字符 |