使用 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中文网其他相关文章!