types

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

This section is empty.

Functions

This section is empty.

Types

type DBTime

type DBTime struct {
	// contains filtered or unexported fields
}

DBTime es un tipo de persistencia temporal que garantiza UTC limpio sin reloj monotónico. Diseño deliberadamente restrictivo: NO embebe time.Time para evitar exponer métodos peligrosos como Local(), Add(), AddDate() que pueden corromper la invariante UTC de la BD.

func NewDBTime

func NewDBTime(t time.Time) DBTime

NewDBTime crea una instancia de DBTime normalizada a UTC absoluto sin reloj monotónico.

func NowDBTime

func NowDBTime() DBTime

NowDBTime devuelve el instante actual como DBTime en UTC.

func (DBTime) Equal

func (d DBTime) Equal(other DBTime) bool

Equal compara si dos DBTime representan el mismo instante.

func (DBTime) EqualTime

func (d DBTime) EqualTime(t time.Time) bool

EqualTime compara DBTime con un time.Time arbitrario.

func (DBTime) IsZero

func (d DBTime) IsZero() bool

IsZero informa si el valor es el instante cero.

func (DBTime) MarshalJSON

func (d DBTime) MarshalJSON() ([]byte, error)

MarshalJSON implementa json.Marshaler formateando en RFC3339Nano UTC (preserva nanosegundos).

func (*DBTime) Scan

func (d *DBTime) Scan(value any) error

Scan implementa sql.Scanner para leer valores de la base de datos de forma segura.

func (DBTime) String

func (d DBTime) String() string

String retorna la representación ISO 8601 del instante.

func (DBTime) Time

func (d DBTime) Time() time.Time

Time retorna el time.Time subyacente en UTC. Es el único punto de acceso controlado.

func (DBTime) UTC

func (d DBTime) UTC() time.Time

UTC retorna el instante en UTC (equivalente a Time(), para compatibilidad con time.Time).

func (*DBTime) UnmarshalJSON

func (d *DBTime) UnmarshalJSON(data []byte) error

UnmarshalJSON implementa json.Unmarshaler aceptando cadenas ISO 8601 / RFC 3339 o null.

func (DBTime) Value

func (d DBTime) Value() (driver.Value, error)

Value implementa driver.Valuer para persistencia en SQL.

type ZonedTime

type ZonedTime struct {
	UTC  DBTime `json:"utc"`
	Zone string `json:"zone"`
}

ZonedTime preserva tanto el instante UTC como la zona IANA de origen para calendarios y eventos futuros. Patrón 2 de persistencia: almacena el instante universal Y la intención local original.

func NewZonedTime

func NewZonedTime(t time.Time, zoneName string) (ZonedTime, error)

NewZonedTime crea una instancia de ZonedTime normalizada.

func (ZonedTime) IsZero

func (z ZonedTime) IsZero() bool

IsZero informa si el ZonedTime es el instante cero.

func (ZonedTime) Local

func (z ZonedTime) Local() (time.Time, error)

Local devuelve la fecha recalculada en la zona de origen según las reglas vigentes.

func (*ZonedTime) Scan

func (z *ZonedTime) Scan(value any) error

Scan implementa sql.Scanner para reconstruir ZonedTime desde la base de datos.

func (ZonedTime) Value

func (z ZonedTime) Value() (driver.Value, error)

Value implementa driver.Valuer serializando ZonedTime como JSON string para SQL.

Jump to

Keyboard shortcuts

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