Go语言 凝固时间,即2周、1个月、1年等

mnemlml8  于 2023-04-27  发布在  Go
关注(0)|答案(2)|浏览(98)

我正在重构一堆现有的Go代码,在很多地方,我使用86400 * { days }来设置MaxAge等。
有没有更直观的方法来设置这些?我现在有很多用例需要使用时间验证和其他东西,但我想知道如何在2个标准周或6个标准月内完成时间等。

2ekbmq32

2ekbmq321#

使用AddDate

twoWeeksFromNow := time.Now().AddDate(0, 0, 14)
 oneMonthFromNow := time.Now().AddDate(0, 1, 0)
 oneYearFromNow := time.Now().AddDate(1, 0, 0)
6yt4nkrj

6yt4nkrj2#

这就是Duration类型沿着预定义常量的用途。
尽管要注意,由于时区和夏令时的变化等原因,它并不总是优雅地处理日期。如果你对此没有意见,请执行以下操作:

maxAge := days * 24 * time.Hour

要将此添加到当前时间,可以使用Add:

deadline := time.Now().Add(maxAge)

相关问题