time.Format
Syntax
time.Format LAYOUT INPUT
Returns
string
Alias
dateFormat
Use the time.Format function with time.Time values:
{{ $t := time.AsTime "2023-02-27T23:44:58-08:00" }}
{{ time.Format "2 Jan 2006" $t }} → 27 Feb 2023
Or use time.Format with a parsable string representation of a date/time value:
{{ $t := "27 Feb 2023" }}
{{ time.Format "January 2, 2006" $t }} → February 27, 2023
Examples of parsable string representations:
| String representation | Time zone | 
|---|---|
| 2023-10-15T14:20:28-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 | 
The last four examples are not fully qualified. Without a time zone offset, the time zone is set to Etc/UTC (Coordinated Universal Time).
Layout string
Format a time.Time value based on Go’s reference time:
Mon Jan 2 15:04:05 MST 2006
Create a layout string using these components:
| Description | Valid components | 
|---|---|
| Year | "2006" "06" | 
| Month | "Jan" "January" "01" "1" | 
| Day of the week | "Mon" "Monday" | 
| Day of the month | "2" "_2" "02" | 
| Day of the year | "__2" "002" | 
| Hour | "15" "3" "03" | 
| Minute | "4" "04" | 
| Second | "5" "05" | 
| AM/PM mark | "PM" | 
| Time zone offsets | "-0700" "-07:00" "-07" "-070000" "-07:00:00" | 
Replace the sign in the layout string with a Z to print Z instead of an offset for the UTC zone.
| Description | Valid components | 
|---|---|
| Time zone offsets | "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 
Strings such as PST and CET are not time zones. They are time zone abbreviations.
Strings such as -07:00 and +01:00 are not time zones. They are time zone offsets.
A time zone is a geographic area with the same local time. For example, the time zone abbreviated by PST and PDT (depending on Daylight Savings Time) is America/Los_Angeles.
Localization
Use the time.Format function to localize time.Time values for the current language and region.
Use the layout string as described above, or one of the tokens below. For example:
{{ .Date | time.Format ":date_medium" }} → Jan 27, 2023
Localized to en-US:
| Token | Result | 
|---|---|
: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 | 
Localized to de-DE:
| Token | Result | 
|---|---|
: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 |