0
1

More than 1 year has passed since last update.

Goの日時フォーマットあれこれ

Last updated at Posted at 2022-02-24

はじめに

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
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1