zone

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

func Difference(zoneA, zoneB string, at time.Time) (time.Duration, error)

Difference calcula la duración diferencial entre zoneA y zoneB en el instante dado.

func FormatOffset

func FormatOffset(offsetSeconds int) string

FormatOffset convierte un offset en segundos a string legible como "+02:00" o "-05:00".

func IsDST

func IsDST(zoneName string, at time.Time) (bool, error)

IsDST reporta si una zona se encuentra en horario de verano en el instante dado.

func IsValid

func IsValid(zoneName string) bool

IsValid verifica si un nombre de zona o alias es válido.

func LoadLocation

func LoadLocation(zoneName string) (*time.Location, error)

LoadLocation carga un *time.Location con soporte de caché en memoria y resolución de alias.

func Normalize

func Normalize(zoneName string) (string, error)

Normalize convierte un alias o nombre al identificador canónico IANA correspondiente.

func RegisterAlias

func RegisterAlias(alias, ianaZone string) error

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.

func GetInfo

func GetInfo(zoneName string, at time.Time) (Detail, error)

GetInfo devuelve el detalle de una zona horaria en un instante determinado.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL