tz

Go
BSD-3-Clause

Ein leichtgewichtiges Go-Paket für Zeitzonen-Operationen

Installation

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

tz

CI Go Reference

Ein leichtgewichtiges Go-Paket, das IANA-Zeitzonen-Identifikatoren auf Ländercodes und UTC-Offsets abbildet. Keine Abhängigkeiten, 400+ Zeitzonen.

Installation

go get github.com/infobits-io/tz

Verwendung

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
}

Umgekehrte Abfragen

// Alle Zeitzonen in einem Land finden.
zones := tz.ByCountryCode("US")
for _, z := range zones {
    fmt.Printf("%s (UTC%+g)\n", z.Identifier(), z.UtcOffset())
}

// Alle Zeitzonen mit einem bestimmten UTC-Offset finden.
zones = tz.ByUtcOffset(5.5)
for _, z := range zones {
    fmt.Printf("%s (%s)\n", z.Identifier(), z.CountryCode())
}

Validierung und Aufzählung

// Prüfen, ob ein Zeitzonen-Identifikator erkannt wird.
if tz.IsValid("Asia/Tokyo") {
    fmt.Println("valid")
}

// Alle unterstützten Zeitzonen-Identifikatoren abrufen (sortiert).
all := tz.All()
fmt.Printf("%d timezones supported\n", len(all))

// Die aktuelle Zeitzone des Systems ermitteln.
current, err := tz.Current()
if err == nil {
    fmt.Printf("System timezone: %s\n", current.Identifier())
}

API

Decode(identifier string) (Timezone, error)

Sucht eine Zeitzone anhand ihres IANA-Identifikators und gibt einen Timezone-Wert zurück, oder einen Fehler, der ErrNotFound umschließt, wenn der Identifikator nicht erkannt wird.

IsValid(identifier string) bool

Gibt an, ob der angegebene Identifikator eine erkannte Zeitzone ist.

All() []string

Gibt eine sortierte Slice aller unterstützten IANA-Zeitzonen-Identifikatoren zurück.

ByCountryCode(code string) []Timezone

Gibt alle Zeitzonen für den angegebenen ISO 3166-1 Alpha-2-Ländercode zurück, sortiert nach Identifikator.

ByUtcOffset(offset float32) []Timezone

Gibt alle Zeitzonen mit dem angegebenen Standard-UTC-Offset in Stunden zurück, sortiert nach Identifikator.

Current() (Timezone, error)

Gibt die Zeitzone für den aktuellen Standort des Systems zurück.

Timezone-Methoden

MethodeRückgabetypBeschreibung
Identifier()stringIANA-Zeitzonen-Identifikator
CountryCode()stringISO 3166-1 Alpha-2-Ländercode
CountryCodes()[]stringAlle zugehörigen Ländercodes
UtcOffset()float32Standard-UTC-Offset in Stunden

Sentinel-Fehler

var ErrNotFound = errors.New("timezone not found")

Verwenden Sie errors.Is(err, tz.ErrNotFound), um nach unbekannten Zeitzonen-Identifikatoren zu prüfen.

Hinweis: UTC-Offsets repräsentieren nur die Standardzeit. Sommerzeitanpassungen werden nicht berücksichtigt.

Unterstützte Zeitzonen

Umfasst 400+ IANA-Zeitzonen in allen Regionen: Afrika, Amerika, Antarktis, Asien, Atlantik, Australien, Europa, Indischer Ozean und Pazifik. Siehe data.go für die vollständige Liste.

Lizenz

BSD 3-Clause