Hugoの日時書式「2006-01-02T15:04:05Z07:00」について

toc目次

はじめに

本ブログは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」という書式文字列は直感的に分かりづらい…

まあ、頑張って覚えるしかなさそうです。

参考