ホームページ >バックエンド開発 >Golang >2 つの Go `time.Time` オブジェクトの差を計算してフォーマットするにはどうすればよいですか?

2 つの Go `time.Time` オブジェクトの差を計算してフォーマットするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-20 20:07:10658ブラウズ

How Can I Calculate and Format the Difference Between Two Go `time.Time` Objects?

time.Time オブジェクトによる時差の計算

Go を使用したプログラミングでは、時点を表すことが重要です。 time.Time 型は、時間関連の値を操作する機能を提供します。一般的なタスクの 1 つは、2 つの時点間の時間差を計算することです。

2 つの time.Time オブジェクト間の時間差を取得するには、time.Sub() メソッドを利用できます。結果は time.Duration 値として表されます。

time.Duration は、時差に対応する方法でそれ自体をフォーマットします。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Now()
    t2 := t1.Add(time.Second * 341)

    fmt.Println(t1)
    fmt.Println(t2)

    diff := t2.Sub(t1)
    fmt.Println(diff)
}

出力:

2009-11-10 23:00:00 +0000 UTC
2009-11-10 23:05:41 +0000 UTC
5m41s

HH:mm:ss 形式で時刻を取得したい場合は、time.Time 値を作成し、その時刻を使用できます。 Format() メソッド:

out := time.Time{}.Add(diff)
fmt.Println(out.Format("15:04:05"))

出力:

00:05:41

これこのアプローチは、24 時間未満の時差に適しています。ただし、時間が複数日以上にわたる場合は、次の質問で提供されている関数など、より大きな時差に対応するソリューションの使用を検討してください:

  • golang time.Since() with months and years

以上が2 つの Go `time.Time` オブジェクトの差を計算してフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。