はじめに
Goの日付フォーマット、時間フォーマットは他の言語と比べてユニークです。覚えるまでに少し時間がかかります。なので、ここでまとめてみました。
年
文字 |
解説 |
出力例 |
2006 |
4桁の年 |
2000, 2022 |
06 |
下2桁の年 |
00, 22 |
// 2022年の場合
fmt.Println(time.Now().Format(`2006`)) // 2022
fmt.Println(time.Now().Format(`06`)) // 22
月
文字 |
解説 |
出力例 |
2 |
1桁または2桁の数字 |
1, 2, ..., 10, 11, 12 |
_2 |
1桁または2桁の数字。先頭は半角スペース埋め |
1, 2, ..., 10, 11, 12 |
02 |
2桁の数字。先頭は0埋め |
01, 02, ..., 10, 11, 12 |
Jan |
省略した月名。大文字小文字を区別する。 |
Jan, Feb, ..., Nov, Dec |
January |
フルテキストの月名。大文字小文字を区別する。 |
January, February, ..., November, December |
// 3月の場合
fmt.Println(time.Now().Format(`2`)) // 3
fmt.Println(time.Now().Format(`_2`)) // 3
fmt.Println(time.Now().Format(`02`)) // 03
fmt.Println(time.Now().Format(`Jan`)) // Mar
fmt.Println(time.Now().Format(`January`)) // March
日
文字 |
解説 |
出力例 |
3 |
1桁または2桁の数字 |
1, 2, ..., 30, 31 |
_3 |
1桁または2桁の数字。先頭は半角スペース埋め |
1, 2, ..., 30, 31 |
03 |
2桁の数字。先頭は0埋め |
01, 02, ..., 30, 31 |
// 5日の場合
fmt.Println(time.Now().Format(`3`)) // 5
fmt.Println(time.Now().Format(`_3`)) // 5
fmt.Println(time.Now().Format(`03`)) // 05
曜日
文字 |
解説 |
出力例 |
Mon |
省略した曜日名 |
Mon, Tue, ..., Sat, Sun |
Monday |
フルテキストの曜日名 |
Monday, Tuesday, ..., Saturday, Sunday |
// 2022年2月1日(火)の場合
fmt.Println(time.Now().Format(`Mon`)) // Tue
fmt.Println(time.Now().Format(`Monday`)) // Tuesday
日数
文字 |
解説 |
出力例 |
__2 |
元日からの日数。先頭は半角スペース埋め。 |
1, 2, ..., 364, 365 |
002 |
元日からの日数。先頭は0埋め。 |
001, 002, ..., 364, 365 |
// 2022年2月1日(火)の場合
fmt.Println(time.Now().Format(`__2`)) // 32
fmt.Println(time.Now().Format(`002`)) // 032
時
文字 |
解説 |
出力例 |
3 |
12時間表記の数字 |
1, 2, ..., 11, 12 |
03 |
12時間表記の数字。先頭は0埋め。 |
01, 02, ..., 11, 12 |
15 |
24時間表記の数字。先頭は0埋め。 |
00, 01, ..., 22, 23 |
// 現在時刻が午後4時の場合
fmt.Println(time.Now().Format(`3`)) // 4
fmt.Println(time.Now().Format(`03`)) // 04
fmt.Println(time.Now().Format(`15`)) // 16
分
文字 |
解説 |
出力例 |
4 |
1桁または2桁の数字 |
0, 1, ..., 58, 59 |
04 |
2桁の数字。先頭は0埋め。 |
00, 01, ..., 58, 59 |
// 現在時刻が9分の場合
fmt.Println(time.Now().Format(`4`)) // 9
fmt.Println(time.Now().Format(`04`)) // 09
秒
文字 |
解説 |
出力例 |
5 |
1桁または2桁の数字 |
0, 1, ..., 58, 59 |
05 |
2桁の数字。先頭は0埋め。 |
00, 01, ..., 58, 59 |
// 現在時刻が9秒の場合
fmt.Println(time.Now().Format(`5`)) // 9
fmt.Println(time.Now().Format(`05`)) // 09
ミリ秒以下
文字 |
解説 |
出力例 |
.0 .000000000 |
0の数で桁数(1~9)が変わる。桁数は0の数と同じ。 |
000000000, ..., 999999999 |
.9 .999999999 |
9の数で桁数(1~9)が変わる。桁数は9の数と同じだが、最小位の0は省略される。 |
0, ..., , 999999999 |
// 現在時刻の小数点以下が0.071581420秒の場合
fmt.Println(time.Now().Format(`.0`)) // .0
fmt.Println(time.Now().Format(`.000000000`)) // .071581420
fmt.Println(time.Now().Format(`.9`)) // 空文字
fmt.Println(time.Now().Format(`.999999999`)) // .07158142
午前 / 午後
文字 |
解説 |
出力例 |
pm |
午前または午後の英語表記。小文字。 |
am, pm |
PM |
午前または午後の英語表記。大文字。 |
AM, PM |
// 現在時刻が午前の場合
fmt.Println(time.Now().Format(`pm`)) // am
fmt.Println(time.Now().Format(`PM`)) // AM
タイムゾーン
文字 |
解説 |
出力例 |
MST |
タイムゾーンの3文字表記 |
UTC, JST etc |
// タイムゾーンが日本の場合
fmt.Println(time.Now().Format(`MST`)) // JST
オフセット
文字 |
解説 |
出力例 |
-07:00 |
UTCからのオフセット |
+09:00, +00:00, -01:00 etc |
-0700 |
UTCからのオフセット |
+0900, +0000, -0100 etc |
-07 |
UTCからのオフセット |
+09, +00, -01 etc |
Z07:00 |
UTCからのオフセット。オフセットがない場合はZと表示 |
+09:00, Z, -01:00 etc |
Z0700 |
UTCからのオフセット。オフセットがない場合はZと表示 |
+0900, Z, -0100 etc |
Z07 |
UTCからのオフセット。オフセットがない場合はZと表示 |
+09, Z, -01 etc |
// タイムゾーンが日本の場合
fmt.Println(time.Now().Format(`-07:00`)) // +09:00
fmt.Println(time.Now().Format(`-0700`)) // +0900
fmt.Println(time.Now().Format(`-07`)) // +09
fmt.Println(time.Now().Format(`Z07:00`)) // +09:00
fmt.Println(time.Now().Format(`Z0700`)) // +0900
fmt.Println(time.Now().Format(`Z07`)) // +09