Golang の日付操作について

Golang の日付操作はほとんど直感的で楽だけど、
特に Parse(), Format() 関連がドキュメントちゃんと読まないとわからない。

Golang におけるフォーマットの書き方

よくあるフォーマット記法だと、
下記のような Y やら d やらのアルファベットを組み合わせたものだと思う。

[PHP]
Y/m/d(D) H:i:s
[javascript:momentjs]
YYYY/MM/DD(ddd) HH:mm:ss

しかし、 Golang ではフォーマット記法が下記のようになる。

フォーマット表記

  • Mon Jan 2 15:04:05 -0700 MST 2006
  • Mon 01 02 15:04:05 -0700 MST 2006
  • Mon 1 02 15:04:05 -0700 MST 2006

func (t Time) Format(layout string) string

上記の他の言語のフォーマットを Golang で実現しようとすると、
下記のように書く。

time.Now().Format("2006.01.02(Mon) 15:04:05")

よく使う関数

現在の Unixtime (int64) を取得する

u := time.Now().Unix()
fmt.Print(u)

String 型 → Time 型 (Date) への変換

str := "2019/08/01 12:23:45"
t, _ := time.Parse("2006/01/02 15:04:05", str)
fmt.Print(t)

int64 型 (Unixtime) → Time 型 (Date) への変換

unix := int64(1564662225)
t = time.Unix(unix, 0)
fmt.Print(t)

Time 型 (Date) → String 型への変換

t := time.Now()
s := t.Format("2006.01.02(Mon) 15:04:05")
fmt.Print(s)
カテゴリー:Go