Go言語の小技集(時間操作系)

Go_icon Go
この記事は約5分で読めます。

この記事は以下の方を対象に書いています。

  • Go言語で時間操作系の小技を知りたい

はじめに

今回はGo言語で時間操作系の小技を紹介していきます。

時間に関することは、timeパッケージから取得できます。

この記事は、便利なものを見つけ次第更新していきます。

現在時刻を取得

まずは、一番使用頻度の高い現在時刻の取得をしてみます。

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	fmt.Println(now)

	// 2023-10-05 22:57:18.7949636 +0900 JST m=+0.002079401
}

時間のフォーマット

フォーマットもすごく簡単にできます。

ただ、注意点として、フォーマット文字列の数字を変更するとおかしくなります

ですので、数字の部分は変更しないようにしてください。

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	fmt.Println(now.Format("2006/01/02"))          // 2023/10/05
	fmt.Println(now.Format("2006/01/02 15:04"))    // 2023/10/05 23:05
	fmt.Println(now.Format("2006/01/02 15:04:05")) // 2023/10/05 23:05:36
}

〇〇日後の日付を取得

次は、意外とありそうな何日か後の日付を取得する方法です。

package main

import (
	"fmt"
	"time"
)

func main() {
	// 現在の日付を取得
	now := time.Now()

	// 2週間後の日付を計算
	twoWeeksLater := now.Add(2 * 7 * 24 * time.Hour)

	// 2週間後の日付を表示
	fmt.Println("今日の日付:", now.Format("2006/01/02"))
	fmt.Println("2週間後の日付:", twoWeeksLater.Format("2006/01/02"))

	// 今日の日付: 2023/10/05
	// 2週間後の日付: 2023/10/19
}

ちなみに、2週間前の日付を取得したい場合は、以下のように記述します。

package main

import (
	"fmt"
	"time"
)

func main() {
	// 現在の日付を取得
	now := time.Now()

	// 2週間後の日付を計算(マイナスにすると過去の時間になる)
	twoWeeksLater := now.Add(-2 * 7 * 24 * time.Hour)

	// 2週間後の日付を表示
	fmt.Println("今日の日付:", now.Format("2006/01/02"))
	fmt.Println("2週間前の日付:", twoWeeksLater.Format("2006/01/02"))

	// 今日の日付: 2023/10/05
	// 2週間前の日付: 2023/09/21
}

一定時間後に処理を実行

今度は、一定時間後に何らかの処理をする方法を紹介します。

ここでは、何らかの処理として5秒後に文字列を出力してみます。

package main

import (
	"fmt"
	"time"
)

func main() {
	select {
	case <-time.After(5 * time.Second):
		fmt.Println("5秒後に実行されました。")
	}
}

ちなみに、「<-」はチャネルからデータを受信するための演算子です。

チャネルについては、以下の記事で詳しく解説をしていますので、ご参考までに!

時間の比較

今度は、時間の比較をしてみます。

これは、結構使用頻度も高いと思います。

package main

import (
	"fmt"
	"time"
)

func main() {
	currentTime := time.Now()
	futureTime := currentTime.Add(1 * time.Hour)

	if currentTime == futureTime {
		fmt.Println("同じ時間です。")
	} else {
		fmt.Println("異なる時間です。")
	}
}

最後に

ここまで読んでいただきありがとうございます。

今回は時間操作系の小技集を紹介しましたが、

まだまだ少ないので、随時アップデートしていきます。

また、「ここはこうしたほうが良い」などのアドバイスがあればコメントしていただけると幸いです。

コメント

タイトルとURLをコピーしました