Go は時刻と期間を幅広くサポートします。以下にいくつかの例を示します。
|
|
|

package main
|
|
import (
"fmt"
"time"
)
|
|
func main() {
p := fmt.Println
|
現在の時刻を取得することから始めます。
|
now := time.Now()
p(now)
|
年、月、日などを指定して time 構造を構築できます。時刻は常に 場所 、つまりタイムゾーンに関連付けられます。
|
then := time.Date(
2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
|
期待どおり、時刻値のさまざまなコンポーネントを抽出できます。
|
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
|
月曜から日曜の 曜日 も利用できます。
|
p(then.Weekday())
|
これらのメソッドは 2 つの時刻を比較し、それぞれ 1 つ目が 2 つ目の前、後、または同時かどうかをテストします。
|
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
|
Sub メソッドは、2 つの時刻の間隔を表す 期間 を返します。
|
diff := now.Sub(then)
p(diff)
|
さまざまな単位で期間の長さを計算できます。
|
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
|
Add を使用して、時刻を指定された期間だけ進めるか、- を使用して期間だけ後退できます。
|
p(then.Add(diff))
p(then.Add(-diff))
}
|