tz

Go
BSD-3-Clause

Een lichtgewicht Go-pakket voor tijdzonebewerkingen

Installatie

$ go get packages.infobits.io/go/tz

tz

CI Go Reference

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

MethodeRetourtypeBeschrijving
Identifier()stringIANA-tijdzone-identificator
CountryCode()stringISO 3166-1 alfa-2 landcode
CountryCodes()[]stringAlle bijbehorende landcodes
UtcOffset()float32Standaard 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.

Licentie

BSD 3-Clause