Python time strftime() 方法



类似于 Python time asctime() 方法,strftime() 方法也把表示 UTC 或本地时间的元组或 struct_time 转换为以下形式的 24 字符串:'Mon Jan 9 10:51:77 2023'。但是,当 strftime() 方法以用户友好的方式格式化字符串输出时,就会出现对比。

此方法接受两个参数:一个表示特定时间的元组或对象,另一个是指令。指令用于格式化日期和时间字符串。它们用“%”符号表示,后跟表示时间某些元素的缩写。以下指令可以嵌入到格式字符串中:

指令

  • %a - 缩写的工作日名称

  • %A - 完整的工作日名称

  • %b - 缩写的月份名称

  • %B - 完整的月份名称

  • %c - 首选的日期和时间表示形式

  • %C - 世纪数(年份除以 100,范围 00 到 99)

  • %d - 月份中的日期(01 到 31)

  • %D - 与 %m/%d/%y 相同

  • %e - 月份中的日期(1 到 31)

  • %g - 与 %G 相似,但不带世纪

  • %G - 与 ISO 周数对应的 4 位年份(参见 %V)。

  • %h - 与 %b 相同

  • %H - 小时,使用 24 小时制时钟(00 到 23)

  • %I - 小时,使用 12 小时制时钟(01 到 12)

  • %j - 一年中的日期(001 到 366)

  • %m - 月份(01 到 12)

  • %M - 分钟

  • %n - 换行符

  • %p - 根据给定的时间值,要么是 am,要么是 pm

  • %r - 上午和下午表示法的时间

  • %R - 24 小时表示法的时间

  • %S - 秒

  • %t - 制表符

  • %T - 当前时间,等于 %H:%M:%S

  • %u - 工作日作为数字(1 到 7),星期一=1。警告:在 Sun Solaris 中,星期日=1

  • %U - 当前年份的周数,从第一个星期日作为第一周的第一天开始

  • %V - 当前年份的 ISO 8601 周数(01 到 53),其中第 1 周是当前年份至少有 4 天的第一周,并且以星期一作为一周的第一天

  • %W - 当前年份的周数,从第一个星期一作为第一周的第一天开始

  • %w - 工作日作为十进制数,星期日=0

  • %x - 首选的日期表示形式,不带时间

  • %X - 首选的时间表示形式,不带日期

  • %y - 不带世纪的年份(范围 00 到 99)

  • %Y - 包括世纪的年份

  • %Z 或 %z - 时区或名称或缩写

  • %% - 字面上的 % 字符

注意:某些平台可能支持其他指令,但此处列出的指令才是 ANSI C 标准化的指令。

语法

以下是 Python time strftime() 方法的语法:

time.strftime(format[, t])

参数

  • t − 这是要格式化的秒数。
  • format − 这是用于格式化给定时间的指令。

返回值

此方法返回表示日期和时间的格式化字符串。

示例

以下示例演示了 Python time strftime() 方法的用法。我们使用元组表示时间,并将其作为参数传递给此方法;使用多个指令以字符串的形式格式化返回值,以易于理解的方式表示日期和时间。

import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)

print(time.strftime("%b %d %Y %H:%M:%S", t))

运行上述程序时,会产生以下结果:

Feb 17 2009 17:03:38

示例

我们可以直接使用此方法返回标准格式(DD/MM/YY 和 HH:MM:SS)的日期和时间,而无需将数据和时间整理成字符串,只需使用某些指令即可。

这里,我们将指令“%D 和 %T”作为格式参数值传递给方法;不传递任何表示时间的特定元组或对象。在这种情况下,方法默认会考虑当前本地时间;并返回其标准日期和时间格式。

import time

print("Current date and time:")
print(time.strftime("%D%n%T"))

如果我们编译并运行上面的程序,输出将显示如下:

Current date and time:
01/11/23
11:04:40

示例

此方法还返回 UTC 时间。

在此示例中,我们使用 gmtime() 方法通过不向其传递任何参数来获取当前 UTC 时间。此返回值作为表示时间的参数传递给 strftime() 方法,该方法使用指令“%B”、“%d”、“%Y”格式化日期,使用“%H:%M:%S”格式化时间。

import time

t = time.gmtime()
print(time.strftime("Date: %B %dth, %Y%nTime: %H:%M:%S", t))

上面程序的输出显示如下:

Date: January 11th, 2023
Time: 06:37:39

示例

从 time() 方法获得的返回值可以通过将其作为参数传递给 gmtime() 或 strftime() 等方法来格式化。

在以下示例中,我们使用 time() 方法获取当前时间(以秒为单位)。这些秒作为参数传递给 gmtime() 方法,以使用struct_time 对象的各个字段表示时间元素。但是,作为额外步骤,我们还可以尝试通过将其作为参数传递给 strftime() 方法来简化此对象的结构。

import time

t = time.time()
print("Current UTC Time in seconds:", t)

#Formatting the seconds obtained from time() using gmtime()
fmt = time.gmtime(t)
print("Current Formatted UTC Time:", fmt)

#Formatting the object obtained from gmtime() using strftime()
strf = time.strftime("%D %T", fmt)
print("Current Formatted UTC Time:",strf)

Current UTC Time in seconds: 1673435474.7526345
Current Formatted UTC Time: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=11, tm_hour=11, tm_min=11, tm_sec=14, tm_wday=2, tm_yday=11, tm_isdst=0)
Current Formatted UTC Time: 01/11/23 11:12:11
python_date_time.htm
广告