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
廣告