Go:为什么time.Now()。Hour / Minute / Second返回一个六位数?

时间:2016-04-03 10:47:22

标签: time go

我正在学习如何在Go中编写代码并尝试创建一个简单的提醒功能。

我想将当前时间显示为常规24小时制,XX.XX(小时,分钟)。

我已将当前时间保存在变量t中,当我打印它时,我发现时间是2009年11月初的23.00。很好,但是当我打印t.Hour和t.Minute时,结果是{{1} }。

打印132288.132480时类似。我无法弄清楚为什么会这样。

大约2000天过去了,但这只有48k小时和2880k分钟,所以我的结果中的小时和分钟之间的微小差异暗示问题是别的。

我在go操场上运行代码。

我的代码:

t.Seconds

1 个答案:

答案 0 :(得分:3)

您需要拨打t.Hour()而不是将其用作值。

在此处查看time包的来源:https://golang.org/src/time/time.go?s=12994:13018#L390

   399  // Hour returns the hour within the day specified by t, in the range [0, 23].
   400  func (t Time) Hour() int {
   401      return int(t.abs()%secondsPerDay) / secondsPerHour
   402  }
   403  

如有疑问,您可以通过阅读官方go packages page的特定包来源快速找到解释。