Localize time.Format

Fixes #8797
This commit is contained in:
Bjørn Erik Pedersen 2021-07-26 18:28:57 +02:00
parent 2dd60bb71a
commit b30b876bb9

View File

@ -1,6 +1,6 @@
--- ---
title: dateFormat title: time.Format
description: Converts the textual representation of the `datetime` into the specified format. description: Converts a date/time to a localized string.
godocref: https://golang.org/pkg/time/ godocref: https://golang.org/pkg/time/
date: 2017-02-01 date: 2017-02-01
publishdate: 2017-02-01 publishdate: 2017-02-01
@ -10,23 +10,47 @@ menu:
docs: docs:
parent: "functions" parent: "functions"
keywords: [dates,time,strings] keywords: [dates,time,strings]
signature: ["dateFormat LAYOUT INPUT"] signature: ["time.Format LAYOUT INPUT"]
workson: [] workson: []
hugoversion: hugoversion:
relatedfuncs: [Format,now,Unix,time] relatedfuncs: [Format,now,Unix,time]
deprecated: false deprecated: false
--- ---
`dateFormat` converts a timestamp string `INPUT` into the format specified by the `LAYOUT` string. `time.Format` (alias `dateFormat`) converts either a `time.Time` object (e.g. `.Date`) or a timestamp string `INPUT` into the format specified by the `LAYOUT` string.
``` ```go-html-template
{{ dateFormat "Monday, Jan 2, 2006" "2015-01-21" }} → "Wednesday, Jan 21, 2015" {{ time.Format "Monday, Jan 2, 2006" "2015-01-21" }} → "Wednesday, Jan 21, 2015"
``` ```
{{% warning %}} Note that since Hugo 0.87.0, `time.Format` will return a localized string for the currrent language. {{< new-in "0.87.0" >}}
As of v0.19 of Hugo, the `dateFormat` function is *not* supported as part of Hugo's [multilingual feature](/content-management/multilingual/).
{{% /warning %}}
See [Gos Layout String](/functions/format/#gos-layout-string) to learn about how the `LAYOUT` string has to be formatted. There are also some useful examples. The `LAYOUT` string can be either:
* [Gos Layout String](/functions/format/#gos-layout-string) to learn about how the `LAYOUT` string has to be formatted. There are also some useful examples.
* A custom Hugo layout identifier (see full list below)
See the [`time` function](/functions/time/) to convert a timestamp string to a Go `time.Time` type value. See the [`time` function](/functions/time/) to convert a timestamp string to a Go `time.Time` type value.
## Date/time formatting layouts
{{< new-in "0.87.0" >}}
Go's date layout strings can be hard to reason about, especially with multiple languages. Since Hugo 0.87.0 you can alternatively use some predefined layout idenfifiers that will output localized dates or times:
```go-html-template
{{ .Date | time.Format ":date_long" }}
```
The full list of custom layouts with examples for English:
* `:date_full` => `Wednesday, June 6, 2018`
* `:date_long` => `June 6, 2018`
* `:date_medium` => `Jun 6, 2018`
* `:date_short` => `6/6/18`
* `:time_full` => `2:09:37 am UTC`
* `:time_long` => `2:09:37 am UTC`
* `:time_medium` => `2:09:37 am`
* `:time_short` => `2:09 am`