Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

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 ...

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now