time.Format

使用 time.Format 函式處理 time.Time 值:

{{ $t := time.AsTime "2023-10-15T13:18:50-07:00" }}
{{ time.Format "2 Jan 2006" $t }} → 15 Oct 2023

或者使用 time.Format 函式處理可解析的日期/時間字串表示:

{{ $t := "15 Oct 2023" }}
{{ time.Format "January 2, 2006" $t }} → October 15, 2023

可解析日期/時間字串表示的範例:

格式 時區
2023-10-15T13:18:50-07:00 America/Los_Angeles
2023-10-15T13:18:50-0700 America/Los_Angeles
2023-10-15T13:18:50Z Etc/UTC
2023-10-15T13:18:50 預設為 Etc/UTC
2023-10-15 預設為 Etc/UTC
15 Oct 2023 預設為 Etc/UTC

最後三個範例並未完全指定,預設會指向 Etc/UTC 時區。

若要覆寫預設時區,可以在站點設定中設定 timeZone。決定時區的優先順序如下:

  1. 日期/時間字串中的時區偏移
  2. 在站點設定中指定的時區
  3. Etc/UTC 時區

格式字串

根據 Go 的參考時間 格式化 time.Time 值:

Mon Jan 2 15:04:05 MST 2006

使用這些組件創建一個佈局字串:

描述 有效組件
"2006" "06"
"Jan" "January" "01" "1"
週日 "Mon" "Monday"
"2" "_2" "02"
年日 "__2" "002"
小時 "15" "3" "03"
分鐘 "4" "04"
秒數 "5" "05"
AM/PM 標記 "PM"
時區偏移 "-0700" "-07:00" "-07" "-070000" "-07:00:00"

如果要顯示 UTC 區域的 Z(而非偏移),請在佈局字串中將符號替換為 Z。

描述 有效組件
時區偏移 "Z0700" "Z07:00" "Z07" "Z070000" "Z07:00:00"
{{ $t := "2023-01-27T23:44:58-08:00" }}
{{ $t = time.AsTime $t }}
{{ $t = $t.Format "Jan 02, 2006 3:04 PM Z07:00" }}

{{ $t }} → Jan 27, 2023 11:44 PM -08:00 

像是 PSTCET 這些並不是時區,它們是時區 簡稱

像是 -07:00+01:00 這些並不是時區,它們是時區 偏移

時區是一個具有相同當地時間的地理區域。例如,時區用 PSTPDT(取決於日光節約時間)縮寫的是 America/Los_Angeles

在地化

使用 time.Format 函式為當前語言與地區在地化 time.Time 值。

可使用上述描述的格式字串,或者下列標記之一。例如:

{{ .Date | time.Format ":date_medium" }} → Jan 27, 2023

在地化為 en-US:

標記 結果
:date_full Friday, January 27, 2023
:date_long January 27, 2023
:date_medium Jan 27, 2023
:date_short 1/27/23
:time_full 11:44:58 pm Pacific Standard Time
:time_long 11:44:58 pm PST
:time_medium 11:44:58 pm
:time_short 11:44 pm

在地化為 de-DE:

標記 結果
:date_full Freitag, 27. Januar 2023
:date_long 27. Januar 2023
:date_medium 27.01.2023
:date_short 27.01.23
:time_full 23:44:58 Nordamerikanische Westküsten-Normalzeit
:time_long 23:44:58 PST
:time_medium 23:44:58
:time_short 23:44