Documentation
¶
Index ¶
- Variables
- func CommonZones() []string
- func Difference(zoneA, zoneB string, at time.Time) (time.Duration, error)
- func FormatOffset(offsetSeconds int) string
- func IsDST(zoneName string, at time.Time) (bool, error)
- func IsValid(zoneName string) bool
- func LoadLocation(zoneName string) (*time.Location, error)
- func Normalize(zoneName string) (string, error)
- func RegisterAlias(alias, ianaZone string) error
- type Detail
- type Snapshot
Constants ¶
This section is empty.
Variables ¶
var ( // ErrEmptyZoneName se retorna cuando el nombre de la zona está vacío. ErrEmptyZoneName = errors.New("zone: el nombre de la zona horaria no puede estar vacío") // ErrInvalidZone se retorna cuando la zona IANA o alias no existe. ErrInvalidZone = errors.New("zone: zona horaria no válida") )
Functions ¶
func CommonZones ¶
func CommonZones() []string
CommonZones retorna una copia inmutable de la lista de zonas comunes. Retorna una copia nueva para evitar que el consumidor modifique el estado interno.
func Difference ¶
Difference calcula la duración diferencial entre zoneA y zoneB en el instante dado.
func FormatOffset ¶
FormatOffset convierte un offset en segundos a string legible como "+02:00" o "-05:00".
func LoadLocation ¶
LoadLocation carga un *time.Location con soporte de caché en memoria y resolución de alias.
func Normalize ¶
Normalize convierte un alias o nombre al identificador canónico IANA correspondiente.
func RegisterAlias ¶
RegisterAlias permite registrar alias personalizados en tiempo de ejecución de forma concurrente.
Types ¶
type Detail ¶
type Detail struct {
LocalTime time.Time `json:"local_time"`
DifferenceToUTC time.Duration `json:"difference_to_utc"`
ZoneName string `json:"zone_name"`
Abbreviation string `json:"abbreviation"`
OffsetFormatted string `json:"offset_formatted"`
OffsetSeconds int `json:"offset_seconds"`
IsDST bool `json:"is_dst"`
}
Detail describe la información completa de una zona horaria en un instante de tiempo.
type Snapshot ¶
type Snapshot struct {
Time time.Time `json:"-"`
Zone string `json:"zone"`
Abbreviation string `json:"abbreviation"`
Formatted string `json:"formatted"`
OffsetFormatted string `json:"offset_formatted"`
IsDST bool `json:"is_dst"`
// TimeUTC expone el instante normalizado para serialización segura.
TimeUTC string `json:"time_utc"`
}
Snapshot representa la hora correspondiente en una zona específica para una fecha base. MarshalJSON normaliza siempre el campo Time a UTC para garantizar determinismo entre entornos.