hugo/docs/content/en/functions/format.md

127 lines
3.6 KiB
Markdown
Raw Normal View History

---
title: .Format
Squashed 'docs/' changes from 715741f73..4e7e1815b 4e7e1815b Fix some typos d23d8f5c4 Remove 'fundamentals' category from function pages 52fa65e15 Mention Chroma as the preferred syntax highlighter 64ca535db Merge commit '8762aee8afe30bec6f1fbc9560749983dc44d60b' 8762aee8a Squashed 'themes/gohugoioTheme/' changes from 396b859f..6f3a8bf5 03f0673a9 Move the gopher to the theme 320e268cd Spelling e45b640f7 More layout lookup work fe0ad9d9d Sync the YAML config menu example with TOML's b9505fc70 Remove template reference to ordinal numbers 0fa2532d3 Remove deprecated Hugoidx, add native hugo solution 2152b907c Fix a link in the last commit 47614f416 Manually specifying heading anchors in Markdown content 9d6770d2a Release notes 0.37.1 e1eed8b27 Remove some unused images e960046f5 releaser: Prepare repository for 0.38-DEV 4fa83a4ee releaser: Add release notes to /docs for release of 0.37.1 46c879995 releaser: Bump versions for release of 0.37.1 fb3ac5a3e releaser: Prepare repository for 0.38-DEV 4870c8e7b Update archetypes.md 232c0b578 Merge commit '2b18014fd0aa99e9f1a5610ba875101351a90de3' 2b18014fd Squashed 'themes/gohugoioTheme/' changes from fe71e360..396b859f 62567e9aa Add some "writing guidelines" 7cfd530d2 Revise the archetype docs 5d4c3c03c Update data-templates.md e5fee3099 Update page-bundles.md ca7f03c8d Update page-bundles.md 2a7fdc269 Fix typo 'vailable' to 'available' line 53 999b75201 LastMod should be Lastmod? 099f46ca5 Fix spacing in content-management/types.md 6bcdc58ef Word choice improvements 20e8a21f6 update rss linking docs 7ef44d262 Add some missing configuration entries f1c7aa568 Sort config list 5cb8ceade Create a proper definition list for the configuration settings 25dffe4ac Send custom dimensions in GA 55df01a34 Fix broken gtag 6c8772aad Add site to GA config e63acb894 Remove conflicting release note for 0.35 f30083a23 Add branch to GA config 99caedb96 Set the small-multiples to draft 4a33c70ab Polish the Small Multiples showcase 7b2f1ea2e Add small multiples showcase e78e96bae Add new sponsor c42943041 updated to new Forestry logo e07eda273 Add OS env to faq 414f0dbc6 Release Hugo 0.37 85f0cc324 Merge branch 'temp37' 1e6da9497 Rebuild images 75e97adfc releaser: Add release notes to /docs for release of 0.37 50b887cb0 releaser: Bump versions for release of 0.37 7acf73ba3 Merge commit '900b5f6cfe5a377ef369d26cd700201be4cf6b06' 819d02c30 Merge commit '374d184e6747678364fd61f5faf328ec9205eb6b' c7eacf018 Fix typos in development contribution doc git-subtree-dir: docs git-subtree-split: 4e7e1815b742659dec1c8f59a1896a3396c7b6e9
2018-03-11 15:39:20 -04:00
description: Formats built-in Hugo dates---`.Date`, `.PublishDate`, and `.Lastmod`---according to Go's layout string.
godocref: https://golang.org/pkg/time/#example_Time_Format
date: 2017-02-01
publishdate: 2017-02-01
lastmod: 2017-02-01
categories: [functions]
menu:
docs:
parent: "functions"
keywords: [dates,time]
signature: [".Format FORMAT"]
workson: [times]
hugoversion:
relatedfuncs: [dateFormat,now,Unix,time]
deprecated: false
aliases: []
toc: true
---
`.Format` will format date values defined in your front matter and can be used as a property on the following [page variables][pagevars]:
* `.PublishDate`
* `.Date`
Squashed 'docs/' changes from 715741f73..4e7e1815b 4e7e1815b Fix some typos d23d8f5c4 Remove 'fundamentals' category from function pages 52fa65e15 Mention Chroma as the preferred syntax highlighter 64ca535db Merge commit '8762aee8afe30bec6f1fbc9560749983dc44d60b' 8762aee8a Squashed 'themes/gohugoioTheme/' changes from 396b859f..6f3a8bf5 03f0673a9 Move the gopher to the theme 320e268cd Spelling e45b640f7 More layout lookup work fe0ad9d9d Sync the YAML config menu example with TOML's b9505fc70 Remove template reference to ordinal numbers 0fa2532d3 Remove deprecated Hugoidx, add native hugo solution 2152b907c Fix a link in the last commit 47614f416 Manually specifying heading anchors in Markdown content 9d6770d2a Release notes 0.37.1 e1eed8b27 Remove some unused images e960046f5 releaser: Prepare repository for 0.38-DEV 4fa83a4ee releaser: Add release notes to /docs for release of 0.37.1 46c879995 releaser: Bump versions for release of 0.37.1 fb3ac5a3e releaser: Prepare repository for 0.38-DEV 4870c8e7b Update archetypes.md 232c0b578 Merge commit '2b18014fd0aa99e9f1a5610ba875101351a90de3' 2b18014fd Squashed 'themes/gohugoioTheme/' changes from fe71e360..396b859f 62567e9aa Add some "writing guidelines" 7cfd530d2 Revise the archetype docs 5d4c3c03c Update data-templates.md e5fee3099 Update page-bundles.md ca7f03c8d Update page-bundles.md 2a7fdc269 Fix typo 'vailable' to 'available' line 53 999b75201 LastMod should be Lastmod? 099f46ca5 Fix spacing in content-management/types.md 6bcdc58ef Word choice improvements 20e8a21f6 update rss linking docs 7ef44d262 Add some missing configuration entries f1c7aa568 Sort config list 5cb8ceade Create a proper definition list for the configuration settings 25dffe4ac Send custom dimensions in GA 55df01a34 Fix broken gtag 6c8772aad Add site to GA config e63acb894 Remove conflicting release note for 0.35 f30083a23 Add branch to GA config 99caedb96 Set the small-multiples to draft 4a33c70ab Polish the Small Multiples showcase 7b2f1ea2e Add small multiples showcase e78e96bae Add new sponsor c42943041 updated to new Forestry logo e07eda273 Add OS env to faq 414f0dbc6 Release Hugo 0.37 85f0cc324 Merge branch 'temp37' 1e6da9497 Rebuild images 75e97adfc releaser: Add release notes to /docs for release of 0.37 50b887cb0 releaser: Bump versions for release of 0.37 7acf73ba3 Merge commit '900b5f6cfe5a377ef369d26cd700201be4cf6b06' 819d02c30 Merge commit '374d184e6747678364fd61f5faf328ec9205eb6b' c7eacf018 Fix typos in development contribution doc git-subtree-dir: docs git-subtree-split: 4e7e1815b742659dec1c8f59a1896a3396c7b6e9
2018-03-11 15:39:20 -04:00
* `.Lastmod`
Assuming a key-value of `date: 2017-03-03` in a content file's front matter, your can run the date through `.Format` followed by a layout string for your desired output at build time:
```
{{ .PublishDate.Format "January 2, 2006" }} => March 3, 2017
```
For formatting *any* string representations of dates defined in your front matter, see the [`dateFormat` function][dateFormat], which will still leverage the Go layout string explained below but uses a slightly different syntax.
## Go's Layout String
Hugo templates [format your dates][time] via layout strings that point to a specific reference time:
```
Mon Jan 2 15:04:05 MST 2006
```
While this may seem arbitrary, the numerical value of `MST` is `07`, thus making the layout string a sequence of numbers.
Here is a visual explanation [taken directly from the Go docs][gdex]:
```
Jan 2 15:04:05 2006 MST
=> 1 2 3 4 5 6 -7
```
### Hugo Date and Time Templating Reference
The following examples show the layout string followed by the rendered output.
The examples were rendered and tested in [CST][] and all point to the same field in a content file's front matter:
```
date: 2017-03-03T14:15:59-06:00
```
`.Date` (i.e. called via [page variable][pagevars])
: **Returns**: `2017-03-03 14:15:59 -0600 CST`
`"Monday, January 2, 2006"`
: **Returns**: `Friday, March 3, 2017`
`"Mon Jan 2 2006"`
: **Returns**: `Fri Mar 3 2017`
`"January 2006"`
: **Returns**: `March 2017`
`"2006-01-02"`
: **Returns**: `2017-03-03`
`"Monday"`
: **Returns**: `Friday`
`"02 Jan 06 15:04 MST"` (RFC822)
: **Returns**: `03 Mar 17 14:15 CST`
`"02 Jan 06 15:04 -0700"` (RFC822Z)
: **Returns**: `03 Mar 17 14:15 -0600`
`"Mon, 02 Jan 2006 15:04:05 MST"` (RFC1123)
: **Returns**: `Fri, 03 Mar 2017 14:15:59 CST`
Squashed 'docs/' changes from 0c3c04fd6..540aeddc7 540aeddc7 Small fixes for Open Graph internal template 47bbb3fd7 Bump lodash.template from 4.4.0 to 4.5.0 in /themes/gohugoioTheme 64c1cc3db Update title.md 36c27be37 Update configuration.md 4627cfe9a added commento.io to the list 341d9d945 Fix link to font assets 4a6876dec Small typo fix in configuration.md 736d6ddd7 Add bypasscensorship.org showcase. de7ab636b Use actual width in image processing examples 6c88ab2da Update directory-structure.md 88f559e81 Fix spelling mistakes 7bd427141 Rephrase four points from Hosting on Github docs bce1b1832 Fix typos for absLangURL and relLangURL functions abab57335 Update directory-structure.md a6716f2ed Fix metadata list 5ef61d912 Fix typo d9e467b8b Actuall show how to generate pages in quickstart 0aadc92e7 Update link to issue theme submission b1902faaa Remove incorrect note about Hugo snap --classic use. d451e7362 Update documentation on page variables ab2233c39 Update publish_to_ghpages.sh 7c120346b Fix typo in syntax highlighting page. f01dc555d Correct some typos be825ade9 Videos plural produces og:video bc962fbdf Updated installing.md file to include linuxbrew installation 08c9f8fc8 Mention 1 MB file size limit in readFile doc 7145e29e2 Fixes bad URL in menus.md for .hasChildren * part of issue #814 0edbd59c4 add warning about .Hugo variable being deprecated 77f74ced5 fix: typo in output-formats.md f71b67f34 Correct typo "RFC339" to "RFC1123Z" (#837) 424c0207a baseurl -> baseURL f4e24a03e Render launched; no invite code needed 37e1101d3 Add Render hosting guide 01d0a6481 Bump js-yaml from 3.12.0 to 3.13.1 in /themes/gohugoioTheme edb7b36b0 Link site hierarchy schema to larger version af72acda0 Fixes typo in fingerprint.md 0a738467b Adding required XML tag to sample templates 52211f656 Remove note that XML declaration is not needed a39b9ac87 Adding required XML tag to sample templates 1a44d8a50 Add configuration information for Azure 5b7c6b5a1 remove google plus 5a64301ba HTTPS link to yaml.org/spec/ git-subtree-dir: docs git-subtree-split: 540aeddc797658a2c3d0e49e944592d2b23b3bb8
2019-07-15 17:49:41 -04:00
`"Mon, 02 Jan 2006 15:04:05 -0700"` (RFC1123Z)
: **Returns**: `Fri, 03 Mar 2017 14:15:59 -0600`
Squashed 'docs/' changes from 0c3c04fd6..540aeddc7 540aeddc7 Small fixes for Open Graph internal template 47bbb3fd7 Bump lodash.template from 4.4.0 to 4.5.0 in /themes/gohugoioTheme 64c1cc3db Update title.md 36c27be37 Update configuration.md 4627cfe9a added commento.io to the list 341d9d945 Fix link to font assets 4a6876dec Small typo fix in configuration.md 736d6ddd7 Add bypasscensorship.org showcase. de7ab636b Use actual width in image processing examples 6c88ab2da Update directory-structure.md 88f559e81 Fix spelling mistakes 7bd427141 Rephrase four points from Hosting on Github docs bce1b1832 Fix typos for absLangURL and relLangURL functions abab57335 Update directory-structure.md a6716f2ed Fix metadata list 5ef61d912 Fix typo d9e467b8b Actuall show how to generate pages in quickstart 0aadc92e7 Update link to issue theme submission b1902faaa Remove incorrect note about Hugo snap --classic use. d451e7362 Update documentation on page variables ab2233c39 Update publish_to_ghpages.sh 7c120346b Fix typo in syntax highlighting page. f01dc555d Correct some typos be825ade9 Videos plural produces og:video bc962fbdf Updated installing.md file to include linuxbrew installation 08c9f8fc8 Mention 1 MB file size limit in readFile doc 7145e29e2 Fixes bad URL in menus.md for .hasChildren * part of issue #814 0edbd59c4 add warning about .Hugo variable being deprecated 77f74ced5 fix: typo in output-formats.md f71b67f34 Correct typo "RFC339" to "RFC1123Z" (#837) 424c0207a baseurl -> baseURL f4e24a03e Render launched; no invite code needed 37e1101d3 Add Render hosting guide 01d0a6481 Bump js-yaml from 3.12.0 to 3.13.1 in /themes/gohugoioTheme edb7b36b0 Link site hierarchy schema to larger version af72acda0 Fixes typo in fingerprint.md 0a738467b Adding required XML tag to sample templates 52211f656 Remove note that XML declaration is not needed a39b9ac87 Adding required XML tag to sample templates 1a44d8a50 Add configuration information for Azure 5b7c6b5a1 remove google plus 5a64301ba HTTPS link to yaml.org/spec/ git-subtree-dir: docs git-subtree-split: 540aeddc797658a2c3d0e49e944592d2b23b3bb8
2019-07-15 17:49:41 -04:00
More examples can be found in Go's [documentation for the time package][timeconst].
### Cardinal Numbers and Ordinal Abbreviations
Spelled-out cardinal numbers (e.g. "one", "two", and "three") and ordinal abbreviations (i.e., with shorted suffixes like "1st", "2nd", and "3rd") are not currently supported:
```
{{.Date.Format "Jan 2nd 2006"}}
```
Hugo assumes you want to append `nd` as a string to the day of the month and outputs the following:
```
Mar 3nd 2017
```
<!-- Content idea: see https://discourse.gohugo.io/t/formatting-a-date-with-suffix-2nd/5701 -->
### Use `.Local` and `.UTC`
In conjunction with the [`dateFormat` function][dateFormat], you can also convert your dates to `UTC` or to local timezones:
`{{ dateFormat "02 Jan 06 15:04 MST" .Date.UTC }}`
: **Returns**: `03 Mar 17 20:15 UTC`
`{{ dateFormat "02 Jan 06 15:04 MST" .Date.Local }}`
: **Returns**: `03 Mar 17 14:15 CST`
[CST]: https://en.wikipedia.org/wiki/Central_Time_Zone
[dateFormat]: /functions/dateformat/
[gdex]: https://golang.org/pkg/time/#example_Time_Format
[pagevars]: /variables/page/
[time]: https://golang.org/pkg/time/
Squashed 'docs/' changes from 0c3c04fd6..540aeddc7 540aeddc7 Small fixes for Open Graph internal template 47bbb3fd7 Bump lodash.template from 4.4.0 to 4.5.0 in /themes/gohugoioTheme 64c1cc3db Update title.md 36c27be37 Update configuration.md 4627cfe9a added commento.io to the list 341d9d945 Fix link to font assets 4a6876dec Small typo fix in configuration.md 736d6ddd7 Add bypasscensorship.org showcase. de7ab636b Use actual width in image processing examples 6c88ab2da Update directory-structure.md 88f559e81 Fix spelling mistakes 7bd427141 Rephrase four points from Hosting on Github docs bce1b1832 Fix typos for absLangURL and relLangURL functions abab57335 Update directory-structure.md a6716f2ed Fix metadata list 5ef61d912 Fix typo d9e467b8b Actuall show how to generate pages in quickstart 0aadc92e7 Update link to issue theme submission b1902faaa Remove incorrect note about Hugo snap --classic use. d451e7362 Update documentation on page variables ab2233c39 Update publish_to_ghpages.sh 7c120346b Fix typo in syntax highlighting page. f01dc555d Correct some typos be825ade9 Videos plural produces og:video bc962fbdf Updated installing.md file to include linuxbrew installation 08c9f8fc8 Mention 1 MB file size limit in readFile doc 7145e29e2 Fixes bad URL in menus.md for .hasChildren * part of issue #814 0edbd59c4 add warning about .Hugo variable being deprecated 77f74ced5 fix: typo in output-formats.md f71b67f34 Correct typo "RFC339" to "RFC1123Z" (#837) 424c0207a baseurl -> baseURL f4e24a03e Render launched; no invite code needed 37e1101d3 Add Render hosting guide 01d0a6481 Bump js-yaml from 3.12.0 to 3.13.1 in /themes/gohugoioTheme edb7b36b0 Link site hierarchy schema to larger version af72acda0 Fixes typo in fingerprint.md 0a738467b Adding required XML tag to sample templates 52211f656 Remove note that XML declaration is not needed a39b9ac87 Adding required XML tag to sample templates 1a44d8a50 Add configuration information for Azure 5b7c6b5a1 remove google plus 5a64301ba HTTPS link to yaml.org/spec/ git-subtree-dir: docs git-subtree-split: 540aeddc797658a2c3d0e49e944592d2b23b3bb8
2019-07-15 17:49:41 -04:00
[timeconst]: https://golang.org/pkg/time/#ANSIC