
在 go 语言中,可通过 time.now().add(time.hour) 快速获取当前时间加一小时后的 unix 时间戳(或 time.time 类型值),适用于会话过期、缓存刷新等场景。
在 go 语言中,可通过 time.now().add(time.hour) 快速获取当前时间加一小时后的 unix 时间戳(或 time.time 类型值),适用于会话过期、缓存刷新等场景。
要获取“下一小时”的精确时间戳(例如用于设置 token 过期时间、定时任务触发点等),最简洁且推荐的方式是使用 Go 标准库的 time 包:
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间 + 1 小时
nextHour := time.Now().Add(time.Hour)
// 转为 Unix 时间戳(秒级)
timestampSec := nextHour.Unix()
// 转为 Unix 时间戳(毫秒级)
timestampMs := nextHour.UnixMilli()
fmt.Printf("Next hour: %s\n", nextHour.Format(time.RFC3339))
fmt.Printf("Unix timestamp (sec): %d\n", timestampSec)
fmt.Printf("Unix timestamp (ms): %d\n", timestampMs)
}✅ 注意事项:
- time.Hour 是一个常量,等于 time.Duration(1 * time.Hour),精度为纳秒,安全可靠;
- Add() 返回新 time.Time 值,不修改原时间对象(Go 中 time.Time 是不可变类型);
- 若需“整点下一小时”(如当前是 14:23:45,想要 15:00:00),则需额外计算:
t := time.Now() nextHourExact := t.Truncate(time.Hour).Add(time.Hour) // 向上取整到下一小时零分零秒
? 小结: 对于“当前时间加一小时”的通用需求,time.Now().Add(time.Hour) 是最直接、高效且符合直觉的写法,无需第三方依赖,开箱即用。

















