首页 >后端开发 >Golang >Go中如何计算两个时间实例之间的差异?

Go中如何计算两个时间实例之间的差异?

Linda Hamilton
Linda Hamilton原创
2024-12-09 04:56:09227浏览

How to Calculate the Difference Between Two Time Instances in Go?

确定时差

您有两个 time.Time 实例,您需要计算它们的小时、分钟和秒差。考虑以下场景:

  • t1 = "2016-09-09 19:09:16 0530 IST"
    t2 = "2016-09-09 19:09:16 0530 IST"
    (结果: 00:00:00)
  • t1 = "2016-09-14 14:12:48 0530 IST"
    t2 = "2016-09-14 14:18:29 0530 IST"
    (结果: 00:05:41)

解决方案

要计算差异,请使用 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 值并使用它的 Time.Format()方法:

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

输出:

00:05:41

这适用于 24 小时以下的时差。对于较大差异,请考虑使用包含天、月和年的解决方案。

以上是Go中如何计算两个时间实例之间的差异?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn