Files
libredesk/internal/stringutil/timezone.go
T

27 lines
582 B
Go

package stringutil
import (
"strings"
"time"
)
// IsValidTimezone reports whether tz is an IANA timezone name. "Local" is rejected because Go
// resolves it to the host zone but Postgres' AT TIME ZONE does not accept it.
func IsValidTimezone(tz string) bool {
tz = strings.TrimSpace(tz)
if tz == "" || tz == "Local" {
return false
}
_, err := time.LoadLocation(tz)
return err == nil
}
// NormalizeTimezone returns tz if valid, otherwise UTC.
func NormalizeTimezone(tz string) string {
tz = strings.TrimSpace(tz)
if IsValidTimezone(tz) {
return tz
}
return "UTC"
}