tz
Een lichtgewicht Go-pakket voor tijdzonebewerkingen
Installatie
$ go get packages.infobits.io/go/tztz
Een lichtgewicht Go-pakket dat IANA-tijdzone-identificatoren koppelt aan landcodes en UTC-offsets. Geen afhankelijkheden, 400+ tijdzones.
Installatie
go get github.com/infobits-io/tz
Gebruik
package main
import (
"fmt"
"log"
"github.com/infobits-io/tz"
)
func main() {
timezone, err := tz.Decode("Europe/Berlin")
if err != nil {
log.Fatal(err)
}
fmt.Println(timezone.Identifier()) // Europe/Berlin
fmt.Println(timezone.CountryCode()) // DE
fmt.Println(timezone.UtcOffset()) // 1
}
Omgekeerde zoekopdrachten
// Alle tijdzones in een land vinden.
zones := tz.ByCountryCode("US")
for _, z := range zones {
fmt.Printf("%s (UTC%+g)\n", z.Identifier(), z.UtcOffset())
}
// Alle tijdzones met een bepaalde UTC-offset vinden.
zones = tz.ByUtcOffset(5.5)
for _, z := range zones {
fmt.Printf("%s (%s)\n", z.Identifier(), z.CountryCode())
}
Validatie en opsomming
// Controleren of een tijdzone-identificator herkend wordt.
if tz.IsValid("Asia/Tokyo") {
fmt.Println("valid")
}
// Alle ondersteunde tijdzone-identificatoren ophalen (gesorteerd).
all := tz.All()
fmt.Printf("%d timezones supported\n", len(all))
// De huidige tijdzone van het systeem detecteren.
current, err := tz.Current()
if err == nil {
fmt.Printf("System timezone: %s\n", current.Identifier())
}
API
Decode(identifier string) (Timezone, error)
Zoekt een tijdzone op aan de hand van de IANA-identificator en geeft een Timezone-waarde terug, of een fout die ErrNotFound omvat als de identificator niet herkend wordt.
IsValid(identifier string) bool
Geeft aan of de opgegeven identificator een herkende tijdzone is.
All() []string
Geeft een gesorteerde slice van alle ondersteunde IANA-tijdzone-identificatoren terug.
ByCountryCode(code string) []Timezone
Geeft alle tijdzones voor de opgegeven ISO 3166-1 alfa-2 landcode terug, gesorteerd op identificator.
ByUtcOffset(offset float32) []Timezone
Geeft alle tijdzones met de opgegeven standaard UTC-offset in uren terug, gesorteerd op identificator.
Current() (Timezone, error)
Geeft de tijdzone van de huidige locatie van het systeem terug.
Timezone-methoden
| Methode | Retourtype | Beschrijving |
|---|---|---|
Identifier() | string | IANA-tijdzone-identificator |
CountryCode() | string | ISO 3166-1 alfa-2 landcode |
CountryCodes() | []string | Alle bijbehorende landcodes |
UtcOffset() | float32 | Standaard UTC-offset in uren |
Sentinel-fout
var ErrNotFound = errors.New("timezone not found")
Gebruik errors.Is(err, tz.ErrNotFound) om te controleren op onbekende tijdzone-identificatoren.
Opmerking: UTC-offsets vertegenwoordigen alleen de standaardtijd. Zomertijdaanpassingen worden niet weergegeven.
Ondersteunde tijdzones
Omvat 400+ IANA-tijdzones in alle regio's: Afrika, Amerika, Antarctica, Azië, Atlantische Oceaan, Australië, Europa, Indische Oceaan en Stille Oceaan. Zie data.go voor de volledige lijst.