Files
geo/server/internal/tenant/app/monitoring_time.go
T

40 lines
1000 B
Go
Raw Normal View History

2026-04-12 09:56:18 +08:00
package app
import (
"sync"
"time"
)
const monitoringBusinessTimeZoneName = "Asia/Shanghai"
var (
monitoringBusinessLocationOnce sync.Once
monitoringBusinessLocationValue *time.Location
)
func monitoringBusinessLocation() *time.Location {
monitoringBusinessLocationOnce.Do(func() {
loc, err := time.LoadLocation(monitoringBusinessTimeZoneName)
if err != nil {
monitoringBusinessLocationValue = time.FixedZone("UTC+8", 8*60*60)
return
}
monitoringBusinessLocationValue = loc
})
return monitoringBusinessLocationValue
}
func monitoringCanonicalBusinessDay(day time.Time) time.Time {
return monitoringBusinessDayAt(day, monitoringBusinessLocation())
}
func monitoringBusinessDayAndDateAt(now time.Time) (time.Time, string) {
businessDay := monitoringCanonicalBusinessDay(now)
return businessDay, businessDay.Format("2006-01-02")
}
func monitoringBusinessDateText(businessDay time.Time) string {
return monitoringCanonicalBusinessDay(businessDay).Format("2006-01-02")
}