Go 日時フォーマットについて
Goにて日時をフォーマットしようと思い、よくみる%y%M%dを書いたところ、上手くいかなかったため調べてみました。
Goでは20060102と書くと同様のフォーマットができるみたいです。
Goでは日時フォーマットに使う日時が決まっている
なんとGoでは日時フォーマットに使う日時が決まっているのです。
2006年1月2日午後3時4分5秒がその日時です。
実際に表記してほしい状態で指定できるので、わかりやすくていいですよね。(プログラマからしたら、他の言語と違うので逆にわかりにくい気はする...)
Junuaryとかも使える
上記に書いた数字以外もちろん使えます。例えばJunuaryやJunて書いても大丈夫です。
package main import "fmt" import "time" func main() { n := time.Now() fmt.Println(n) // 2009-11-10 23:00:00 +0000 UTC m=+0.000000001 fmt.Println(n.Format("20060102")) // 20091110 fmt.Println(n.Format("2006 Junuary 02")) // 2009 Junuary 10 fmt.Println(n.Format("2006 Jun 02")) // 2009 Jun 10 fmt.Println(n.Format("2006年1月2日")) // 2009年11月10日 fmt.Println(n.Format("06/01/02")) // 09/11/10 }
ちなみに
なんでこの日なんだろう、Goと何か関係がある日なの、、?と考えを巡らしてしまったのですが、googleさんに聞いたところ、Goができた日みたいな素敵な意味ではなく、単純に(1,2,3,4,5,6)の並びだからという話が有力そうです。(覚えやすさ大事...!)