【golang】timeパッケージの使い方

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!」と出力されます。