【发布时间】:2016-04-03 10:47:22
【问题描述】:
我正在学习如何在 Go 中编写代码并尝试创建一个简单的提醒功能。
我想将当前时间显示为常规的 24 小时制 XX.XX(小时、分钟)。
我已将当前时间保存在变量 t 中,当我打印它时,我发现时间是 2009 年 11 月上旬的 23 点。很好,但是当我打印 t.Hour 和 t.Minute 时,结果是 132288.132480。
当我打印t.Seconds 时,情况类似。我一直无法弄清楚为什么会发生这种情况。
从那以后大约已经过去了 2000 天,但这只是 48k 小时和 2880k 分钟,因此我的结果中小时和分钟之间的微小差异暗示问题是其他问题。
我正在 go playground 中运行代码。
我的代码:
package main
import (
"fmt"
"time"
)
func main() {
Remind("It's time to eat")
}
func Remind(text string) {
t := time.Now()
fmt.Println(t)
fmt.Printf("The time is %d.%d: ", t.Hour, t.Minute)
fmt.Printf(text)
fmt.Println()
}
【问题讨论】:
-
Hour和Minute是函数;你需要评估它们:fmt.Printf("The time is %d.%d: ", t.Hour(), t.Minute()). -
天哪,这很简单明了。谢谢!那么你知道 t.Hour 实际返回的是什么吗?为什么它与 t.Minute 和 t.Second 如此相似?
-
t.Hour 和 t.Minutes 是对函数的引用,而不是函数的结果。您可以将它们视为存储这些函数的内存地址。