gpt4 book ai didi

go - 在 Go 时间模块上苦苦挣扎

转载 作者:行者123 更新时间:2023-12-01 22:42:37 25 4
gpt4 key购买 nike

我正在使用 go-redis 并尝试对我正在做的 Set 设置过期时间。

文档中的示例显示 -

func ExampleClient_Set() {
// Last argument is expiration. Zero means the key has no
// expiration time.
err := rdb.Set("key", "value", 0).Err()
if err != nil {
panic(err)
}

// key2 will expire in an hour.
err = rdb.Set("key2", "value", time.Hour).Err()
if err != nil {
panic(err)
}
}

从我可以从 time 收集到的信息虽然文档( https://golang.org/pkg/time/ ),time.Hour 应该返回“小时返回 t 指定的日期内的小时,范围 [0, 23]。”,这将使到期值根据一天中的什么时间而有所不同这段代码已经运行了……我确信这不是他们想要的,而且我确信编写模块的人比我更了解 Go,我无法想象它实际上是这样做的。

被难住了,我阅读了 Set ( https://github.com/go-redis/redis/blob/0658532833205c238a41687728cb13c294504162/commands.go#L839) 的 go-redis 代码,它看起来需要几秒钟,除非你设置了一些东西,否则它需要毫秒,所以我通过了它 120并且在第一次运行时说“你要求 120ns,但最小值是 1ms”……我添加了一堆零,它几乎在我执行 Set 时就过期了,所以我最终放弃了,只是决定寻求一些帮助来正确地完成它,而不是在我想要的每个值上添加一堆零并希望它正常工作。

我现在有时间。分钟-基于示例,我假设这给了我一分钟,但我实际上想要两个,并且在阅读了所有这些并尝试了所有这些事情之后,我不知道如何实现这一目标。非常感谢您的帮助!

最佳答案

From what I can gather from the time documentation though (https://golang.org/pkg/time/), time.Hour should return "Hour returns the hour within the day specified by t, in the range [0, 23]."



您正在查看 the documentation for time.Time.Hour , 你可以这样使用:
now := time.Now()
fmt.Println(now.Hour())

您要查找的文档是 the constant time.Hour ,这是一个 time.Duration定义为 60 * Minute – 它恰好向您展示了如何获得您正在寻找的两分钟。
2 * time.Minute

关于go - 在 Go 时间模块上苦苦挣扎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59399851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com