Go:为什么time.Now()时/分/秒返回六位数?
我正在学习如何在Go中编写代码,并尝试创建一个简单的提醒功能 我想将当前时间显示为常规的24小时时钟XX.XX(小时,分钟) 我将当前时间保存在变量t中,当我打印它时,我发现时间是2009年11月初的23.00。很好,但是当我打印t.Hour和t.Minute时,结果是Go:为什么time.Now()时/分/秒返回六位数?,time,go,Time,Go,我正在学习如何在Go中编写代码,并尝试创建一个简单的提醒功能 我想将当前时间显示为常规的24小时时钟XX.XX(小时,分钟) 我将当前时间保存在变量t中,当我打印它时,我发现时间是2009年11月初的23.00。很好,但是当我打印t.Hour和t.Minute时,结果是132288.132480 当我打印t.Seconds时,情况类似。我一直无法弄清楚为什么会发生这种情况 大约2000天已经过去了,但这仅仅是4800小时和2880分钟,因此我的结果中小时和分钟之间的微小差异暗示问题是另外一回事
132288.132480
当我打印t.Seconds
时,情况类似。我一直无法弄清楚为什么会发生这种情况
大约2000天已经过去了,但这仅仅是4800小时和2880分钟,因此我的结果中小时和分钟之间的微小差异暗示问题是另外一回事
我正在围棋场上运行代码
我的代码:
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()
}
您需要调用
t.Hour()
,而不是将其用作值
在这里查看time
软件包的来源:
当有疑问时,您可以通过阅读官方提供的特定软件包来源快速找到解释 您需要调用
t.Hour()
而不是将其用作值
在这里查看time
软件包的来源:
当有疑问时,您可以通过阅读官方提供的特定软件包来源快速找到解释
Hour
和Minute
是功能;您需要评估它们:fmt.Printf(“时间是%d.%d:,t.Hour(),t.Minute())
。天哪,这很简单,也很明显。谢谢那么你知道t.Hour实际返回的时间是多少吗?为什么它与t.Minute和t.Second如此相似?t.Hour和t.Minutes是对函数的引用,而不是函数的结果。您可以将它们视为内存中存储这些函数的地址。Hour
和Minute
是函数;您需要评估它们:fmt.Printf(“时间是%d.%d:,t.Hour(),t.Minute())
。天哪,这很简单,也很明显。谢谢那么你知道t.Hour实际返回的时间是多少吗?为什么它与t.Minute和t.Second如此相似?t.Hour和t.Minutes是对函数的引用,而不是函数的结果。你可以把它们想象成内存中存储这些函数的地址。嗯,我读过时间包页面,但我没有意识到我没有以正确的方式调用hour函数。你知道t.Hour
返回的是什么吗?我已经阅读了时间包页面,但我没有意识到我没有以正确的方式调用Hour函数。你知道t.Hour返回的是什么吗?
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