Hugoの日時書式「2006-01-02T15:04:05Z07:00」について
目次
はじめに
本ブログはHugoで作成しており、ちょこちょこテンプレートをいじっているのですが、Hugoのドキュメントを読んでいると、「2006-01-02T15:04:05Z07:00
」という謎の日時がでてきます。
数字を変えるとエラーとなるので、この日時が何なのか調べてみました。
Hugoの日時について
結論としては、HugoはGo言語で実装されており「2006-01-02T15:04:05Z07:00
」という指定はGo言語の日時フォーマットのようです。
Go言語では(月、日、時、分、秒、年、タイムゾーン)の順に(1, 2, 3, 4, 5, 6, 7)が書式文字列となっており、時を24時間表記にする場合は3
(時)ではなく15
(時)と記載するため「2006-01-02T15:04:05Z07:00
」という表記になっています。
Hugoの日時フォーマット
以下、Hugo(Go)の書式文字列です。
(※ 参考のためJavaの書式文字列も記載しています。)
内容 | Hugo(Go)の書式 | 【参考】Javaの書式 |
---|---|---|
年(下2桁) | 06 |
yy |
年(4桁) | 2006 |
yyyy |
月 | 1 |
M |
月(0埋め2桁) | 01 |
MM |
日 | 2 |
d |
日(0埋め2桁) | 02 |
dd |
時(12時間表記) | 3 |
h |
時(12時間表記、0埋め2桁) | 03 |
hh |
時(24時間表記、0埋め2桁) | 15 |
HH |
分 | 4 |
m |
分(0埋め2桁) | 04 |
mm |
秒 | 5 |
s |
秒(0埋め2桁) | 05 |
ss |
AM/PM | PM |
a |
あとがき
日付のフォーマットは、Java(yyyy-MM-dd
)やPython(%Y-%m-%d
)の形式で慣れているので、Goの「2006-01-02
」という書式文字列は直感的に分かりづらい…
まあ、頑張って覚えるしかなさそうです。