首頁 >後端開發 >Golang >如何在 Go 中有效計算和格式化兩個 time.Time 物件之間的時間差?

如何在 Go 中有效計算和格式化兩個 time.Time 物件之間的時間差?

Patricia Arquette
Patricia Arquette原創
2024-12-09 02:45:11308瀏覽

How Can I Efficiently Calculate and Format Time Differences Between Two time.Time Objects in Go?

使用Time.Time 物件計算時間差

在Golang 中,使用Time 可以輕鬆取得兩個time.Time 物件之間的時間差異.Sub() 函數。此操作的結果是 time.Duration 值。

預設情況下,持續時間會智慧格式化,如下例所示:

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

對於短於一天的持續時間,您可以使用Time.Time 物件建構函式和Time.Format() 方法來取得HH:mm:ss格式:

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

輸出:

00:05:41

請注意,此方法僅適用於 24 小時內的時差。對於較大的差異,您可能需要考慮更複雜的解決方案,如以下相關主題所述:

[golang time.Since() 包含月份和年份](https://github.com /golang/go /問題/17461)

以上是如何在 Go 中有效計算和格式化兩個 time.Time 物件之間的時間差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn