Files
hfb_sys/backend/internal/timeutil/shanghai.go
T

29 lines
580 B
Go

package timeutil
import (
"sync"
"time"
)
var (
shanghaiOnce sync.Once
shanghaiLoc *time.Location
)
// ShanghaiLocation 返回业务统一使用的北京时间时区。
func ShanghaiLocation() *time.Location {
shanghaiOnce.Do(func() {
loc, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
loc = time.FixedZone("Asia/Shanghai", 8*60*60)
}
shanghaiLoc = loc
})
return shanghaiLoc
}
// ShanghaiNow 返回当前北京时间,避免容器默认 UTC 影响无时区字符串。
func ShanghaiNow() time.Time {
return time.Now().In(ShanghaiLocation())
}