“Go”的新手。问题可能是基本问题。
我有两个 time.Time 对象,我想在小时/分钟/秒方面获得两者之间的差异。让我们说:
t1 = 2016-09-09 19:09:16 +0530 IST
t2 = 2016-09-09 19:09:16 +0530 IST
在上面的例子中,因为差异是 0。它应该给我 00:00:00。考虑另一种情况:
t1 = 2016-09-14 14:12:48 +0530 IST
t2 = 2016-09-14 14:18:29 +0530 IST
在这种情况下,差异为 00:05:41。我查看了 https://godoc.org/time 但无法从中得出任何结论。
原文由 Hemant Bhargava 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
Time.Sub()
获取 2time.Time
值之间的差异,结果将是time.Duration
的值。打印时,a
time.Duration
“智能地”格式化自身:输出:
如果你想要时间格式
HH:mm:ss
,你可以构造一个time.Time
值并使用它的Time.Format()
方法,如下所示:输出:
尝试 Go Playground 上的示例。
当然,这只有在时差小于一天的情况下才有效。如果差异可能更大,那就是另一回事了。结果必须包括日、月和年。复杂性显着增加。有关详细信息,请参阅此问题:
golang time.Since() 有几个月和几年
此处提供的解决方案通过显示带有签名的函数解决了这个问题:
You may use that even if your times are within 24 hours (in which case
year
,month
andday
will be0
).