Easily manage global time zones across your Go application.
Set a default timezone (like America/New_York) once, and all time operations (Now(), Parse(), etc.) with lotime will automatically use it.
No more repetitive In(location) calls!
import"github.com/codebyzen/lotime"// Set global timezone (e.g., New-York)lotime.SetGlobalTimeZone("America/New_York") // All operations now use Boston time:now:=lotime.Now() // Current time in New-Yorkparsed, _:=lotime.Parse("2006-01-02T15:04:05", "2025-05-05T10:00:00") // Parsed in New-York- Set a global timezone (e.g., "America/New_York", "UTC-4") for your entire app.
- Thread-safe operations (uses sync.RWMutex under the hood).
- Zero-dependency (only relies on Go’s standard time package).
- Batteries included:
- Now() – Current time in global timezone.
- Parse(layout, value) – Parse time in global timezone.
- SetFixedTimeZone() – Support for custom offsets (e.g., UTC+5:30).
- Location() – Get the current global timezone.
- Apps where all timestamps must use a specific timezone.
- Simplify code by avoiding repetitive In(location) calls.
- Testing (override timezone globally for consistent results).
- No magic: Explicitly set a timezone instead of relying on time.Local.
- Lightweight: ~70 LOC, no external dependencies.
- Idiomatic: Wraps Go’s time package seamlessly.
go get github.com/codebyzen/lotimepackage main
import (
"fmt""github.com/codebyzen/lotime"
)
funcmain() {
// Set global timezone to Tokyolotime.SetGlobalTimeZone("Asia/Tokyo")
// All operations now use Tokyo timefmt.Println("Current time in Tokyo:", lotime.Now())
// Parse a date in Tokyo timetokyoTime, _:=lotime.Parse("2006-01-02", "2024-12-31")
fmt.Println("Parsed time:", tokyoTime)
}- Not recommended for apps needing per-request timezones (use context instead).
- Timezone names must be valid IANA identifiers (e.g., "Europe/London").
- But you can use
lotime.SetFixedTimeZone("Custom", 5)to set timezone by hours offset instead of naming.
- But you can use
Contributions welcome! 🛠️
This project is licensed under the MIT License - see the LICENSE file for details.