timeパッケージの概要
timeパッケージは、golangの標準パッケージで時間に関する処理を行うためのパッケージです。日付の表現やタイマーの設定、休止など、様々な機能を提供しています。
timeパッケージの使い方
パッケージのインポート
timeパッケージを使用するには、以下のようにインポートします。
import "time"
日付と時間の取得
現在の日付と時間を取得するには、以下のようにします。
now := time.Now()
fmt.Println(now)
出力結果は以下のようになります。
2022-07-27 14:26:05.724013 +0900 JST m=+0.000040601
また、日付や時間の値を個別に取得することもできます。以下は、現在の年、月、日、時、分、秒を取得する例です。
now := time.Now()
year := now.Year() // 年
month := now.Month() // 月
day := now.Day() // 日
hour := now.Hour() // 時
minute := now.Minute() // 分
second := now.Second() // 秒
fmt.Println(year, month, day, hour, minute, second)
出力結果は以下のようになります。
2022 July 27 14 26 5
日付の加算
timeパッケージを使用すると、日付の加算が簡単に行えます。以下は、現在の日付に1日を加算した場合の例です。
now := time.Now()
tomorrow := now.AddDate(0, 0, 1)
fmt.Println(tomorrow)
出力結果は以下のようになります。
2022-07-28 14:26:05.724013 +0900 JST m=+86400.000040601
time.Parse()関数
「time.Parse()」関数を使うと、文字列から時間に変換できます。
dateStr := "2021-11-08T13:30:00+09:00"
layout := "2006-01-02T15:04:05-07:00"
parsedTime, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println(err)
}
fmt.Println(parsedTime)
出力結果は以下のようになります。
2021-11-08 13:30:00 +0900 JST
time.Duration型
「time.Duration」型を使って、時間を扱うことができます。
以下は、「time.Duration」型を使って1秒待機するサンプルコードです。
fmt.Println("start")
time.Sleep(1 * time.Second)
fmt.Println("end")
上記のコードを実行すると、「start」が出力された後、1秒待機してから「end」が出力されます。
time.Timer型
「time.Timer」型を使って、指定した時間後に処理を実行することができます。
以下は、「time.Timer」型を使って、1秒後に「Hello, World!」と出力するサンプルコードです。
timer := time.NewTimer(1 * time.Second)
<-timer.C
fmt.Println("Hello, World!")
上記のコードを実行すると、1秒後に「Hello, World!」と出力されます。