栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

两个time.Time对象之间的时差

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

两个time.Time对象之间的时差

您可以

Time.Sub()
用来获取2个
time.Time
值之间的差,结果将是的值
time.Duration

打印时,

time.Duration
格式本身会“智能地”格式化:

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 UTC2009-11-10 23:05:41 +0000 UTC5m41s

如果要使用时间格式

HH:mm:ss
,则可以构造一个
time.Time
值并使用如下
Time.Format()
方法:

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

输出:

00:05:41

在Go Playground上尝试示例。

当然,这仅在时差少于一天的情况下有效。如果差异可能更大,那就另当别论了。结果必须包括几天,几个月和几年。复杂性显着增加。

此处提供的解决方案通过显示带有签名的函数来解决此问题:

func diff(a, b time.Time) (year, month, day, hour, min, sec int)

即使您的时间在24小时之内(在这种情况下

year
month
day
将是
0
),您也可以使用它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号