Files
fm_be/internal/shared/pkg/timezone/timezone.go
2026-07-16 22:16:45 +07:00

36 lines
551 B
Go

package timezone
import (
"errors"
"strings"
"time"
)
const Default = "UTC"
var (
ErrEmpty = errors.New("timezone is required")
ErrInvalid = errors.New("timezone must be a valid IANA timezone")
)
func Normalize(name string) (string, error) {
tz := strings.TrimSpace(name)
if tz == "" {
return "", ErrEmpty
}
loc, err := time.LoadLocation(tz)
if err != nil {
return "", ErrInvalid
}
return loc.String(), nil
}
func WithDefault(name string) string {
tz := strings.TrimSpace(name)
if tz == "" {
return Default
}
return tz
}