Documentation
¶
Overview ¶
Package timezonermax es la fachada pública principal de la librería TimezonerMAX. Proporciona una Fluent API idiomática y de alto rendimiento que integra de forma coherente los módulos de zonas IANA, persistencia en base de datos (DBTime, ZonedTime), días hábiles, tiempo relativo y cálculo de solapamientos.
Diseñado y creado por Jhonatan bajo arquitectura limpia y modular.
Index ¶
- Variables
- func Convert(t time.Time, toZone string) (time.Time, error)
- func ConvertBetween(timeStr, layout, fromZone, toZone string) (time.Time, error)
- func FormatIn(t time.Time, zoneName, layout string) (string, error)
- func NowIn(zoneName string) (time.Time, error)
- type DBTime
- type OverlapRequest
- type OverlapSlot
- type TimePoint
- func (tp *TimePoint) AddBusinessDays(days int) *TimePoint
- func (tp *TimePoint) AsDBTime() (DBTime, error)
- func (tp *TimePoint) AsZonedTime(zoneName string) (ZonedTime, error)
- func (tp *TimePoint) EndOfDay() *TimePoint
- func (tp *TimePoint) EndOfMonth() *TimePoint
- func (tp *TimePoint) EndOfWeek() *TimePoint
- func (tp *TimePoint) Err() error
- func (tp *TimePoint) Format(layout string) (string, error)
- func (tp *TimePoint) Humanize(relativeTo ...time.Time) (string, error)
- func (tp *TimePoint) HumanizeEn(relativeTo ...time.Time) (string, error)
- func (tp *TimePoint) In(zoneName string) *TimePoint
- func (tp *TimePoint) Info() (ZoneDetail, error)
- func (tp *TimePoint) MustDBTime() DBTime
- func (tp *TimePoint) MustTime() time.Time
- func (tp *TimePoint) MustZonedTime(zoneName string) ZonedTime
- func (tp *TimePoint) StartOfDay() *TimePoint
- func (tp *TimePoint) StartOfMonth() *TimePoint
- func (tp *TimePoint) StartOfWeek() *TimePoint
- func (tp *TimePoint) Time() (time.Time, error)
- func (tp *TimePoint) ToUTC() *TimePoint
- type UserTime
- type WorkingHours
- type ZoneDetail
- type ZoneSnapshot
- type ZonedTime
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmptyZoneName = zone.ErrEmptyZoneName ErrInvalidZone = zone.ErrInvalidZone ErrNoZonesProvided = overlap.ErrNoZonesProvided ErrEmptyDateString = ingest.ErrEmptyDateString ErrInvalidTimeFormat = ingest.ErrInvalidInput )
Re-exportación de errores centinela.
var ( NewDBTime = types.NewDBTime NowDBTime = types.NowDBTime NewZonedTime = types.NewZonedTime IngestNow = ingest.Now IngestTime = ingest.FromTime IngestFromLocal = ingest.FromLocal IngestFromString = ingest.FromString IngestFromUnix = ingest.FromUnix ProjectForUser = project.ForUser ProjectFormat = project.Format ProjectBatchForUsers = project.BatchForUsers LoadLocation = zone.LoadLocation IsValid = zone.IsValid NormalizeZone = zone.Normalize RegisterAlias = zone.RegisterAlias CommonZones = zone.CommonZones FormatOffset = zone.FormatOffset GetZoneInfo = zone.GetInfo IsDST = zone.IsDST Difference = zone.Difference IsWeekend = calendar.IsWeekend IsWeekday = calendar.IsWeekday AddBusinessDays = calendar.AddBusinessDays StartOfDay = calendar.StartOfDay EndOfDay = calendar.EndOfDay StartOfMonth = calendar.StartOfMonth EndOfMonth = calendar.EndOfMonth StartOfWeek = calendar.StartOfWeek EndOfWeek = calendar.EndOfWeek StartOfYear = calendar.StartOfYear EndOfYear = calendar.EndOfYear DaysInMonth = calendar.DaysInMonth Humanize = humanize.Humanize HumanizeEn = humanize.HumanizeEn SupportedLayouts = ingest.SupportedLayouts )
Re-exportación de constructores y funciones de módulos internos. Todas son funciones nombradas, no variables de tipo func (evita reemplazos externos peligrosos).
Functions ¶
func Convert ¶
Convert convierte un time.Time a la zona horaria destino.
Example ¶
package main
import (
"fmt"
"time"
timezoner "github.com/Jhonatan-Code-dev/timezonermax"
)
func main() {
utcTime := time.Date(2026, 6, 1, 12, 0, 0, 0, time.UTC)
limaTime, err := timezoner.Convert(utcTime, "America/Lima")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(limaTime.Format("15:04"))
}
Output: 07:00
func ConvertBetween ¶
ConvertBetween parsea un string en una zona de origen y lo convierte a la de destino.
Types ¶
type OverlapRequest ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
type OverlapSlot ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
func FindOverlap ¶
func FindOverlap(req OverlapRequest) ([]OverlapSlot, error)
FindOverlap busca intervalos de solapamiento hábil para equipos distribuidos.
type TimePoint ¶
type TimePoint struct {
// contains filtered or unexported fields
}
TimePoint encapsula un instante temporal para encadenar operaciones fluidas.
func At ¶
At crea un nuevo TimePoint a partir de un time.Time.
Example ¶
package main
import (
"fmt"
"time"
timezoner "github.com/Jhonatan-Code-dev/timezonermax"
)
func main() {
utcTime := time.Date(2026, 6, 1, 15, 0, 0, 0, time.UTC)
formatted, err := timezoner.At(utcTime).
In("America/Lima").
Format("15:04 MST")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(formatted)
}
Output: 10:00 -05
func (*TimePoint) AddBusinessDays ¶
AddBusinessDays añade n días laborables (lunes a viernes), preservando la hora local ante cambios DST.
func (*TimePoint) AsDBTime ¶
AsDBTime convierte el TimePoint en una estructura DBTime para persistencia SQL y JSON.
func (*TimePoint) AsZonedTime ¶
AsZonedTime convierte el TimePoint en un ZonedTime asociando la zona especificada.
func (*TimePoint) EndOfMonth ¶
EndOfMonth mueve el instante al final del último día del mes.
func (*TimePoint) Humanize ¶
Humanize devuelve una representación relativa humana en español ("hace 5 minutos", "en 2 días").
func (*TimePoint) HumanizeEn ¶
HumanizeEn devuelve una representación relativa humana en inglés ("5 minutes ago", "in 2 days").
func (*TimePoint) Info ¶
func (tp *TimePoint) Info() (ZoneDetail, error)
Info devuelve el detalle de la zona horaria actual del TimePoint.
func (*TimePoint) MustDBTime ¶
MustDBTime devuelve el DBTime o produce pánico si hubo un error.
func (*TimePoint) MustTime ¶
MustTime devuelve el time.Time o produce un pánico si ocurrió un error.
func (*TimePoint) MustZonedTime ¶
MustZonedTime devuelve ZonedTime o produce pánico si hubo un error.
func (*TimePoint) StartOfDay ¶
StartOfDay mueve el instante al inicio del día (00:00:00).
func (*TimePoint) StartOfMonth ¶
StartOfMonth mueve el instante al inicio del primer día del mes.
func (*TimePoint) StartOfWeek ¶
StartOfWeek mueve el instante al inicio del lunes de la semana actual.
type UserTime ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
type WorkingHours ¶
type WorkingHours = overlap.WorkingHours
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
type ZoneDetail ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
type ZoneSnapshot ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
type ZonedTime ¶
Re-exportación de tipos principales para conveniencia del consumidor de la librería.
func ZonedFromLocal ¶
ZonedFromLocal parsea una fecha local expresada como string y la convierte en ZonedTime. Es una función nombrada (no una variable func) para evitar reemplazos externos peligrosos.
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
adversarial_audit_test
command
|
|
|
basic_usage
command
|
|
|
db_lifecycle_demo
command
|
|
|
enterprise_showcase
command
|
|
|
global_saas_battle_test
command
|
|
|
massive_stress_test
command
|
|
|
team_meeting_planner
command
|
|
|
two_database_patterns
command
|
|
|
pkg
|
|