1.10 日時の取り扱い

1.10.1 日時のtime.Timeの取得

Goではtime.Timeで日時とタイムゾーンを扱います。プログラミング言語によっては、TimeDateDateTimeが別々に提供されているものもありますが、Goは1つの型ですべて扱います。

time.Now()関数でシステムが持っているロケールの現在時刻を取得します。time.Date()関数で指定日時のインスタンスが取得できます。

	// 現在時刻のtime.Timeインスタンス取得
	now := time.Now()

	// 指定日時のtime.Timeインスタンス取得
	tz, _ := time.LoadLocation("America/Los_Angeles")
	future := time.Date(2015, time.October, 21, 7, 28, 0, 0, tz)

	fmt.Println(now.String())
	fmt.Println(future.Format(time.RFC3339Nano))

time.LoadLocation()を使ってタイムゾーンをタイムゾーンデータベースから取得できますし、time.Localtime.UTCでローカルのタイムゾーンやUTCのインスタンスを参照できます。time.FixedZone()を使って、好きな時差のタイムゾーンを作成できます。

	// 定義済みのローカルタイムゾーン
	now := time.Date(1985, time.October, 26, 9, 0, 0, 0, time.Local)

	// 定義済みのUTCタイムゾーン
	past := time.Date(1955, time.November ...