0Pricing
Go Academy · Lektion

Zeitzonen

Mit Ortsangaben arbeiten

Zeitzonen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Zeitangaben enthalten eine Location

Jede time.Time hat eine zugehörige Location (Zeitzone). Derselbe Zeitpunkt kann je nach Zone unterschiedlich dargestellt werden.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(t.Location())
}

UTC und Local

Zwei integrierte Locations stehen immer zur Verfügung:

  • time.UTC für die koordinierte Weltzeit.
  • time.Local für die lokale Zone des Computers.
package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(t.UTC().Hour())
}

Eine benannte Zone laden

time.LoadLocation(name) sucht eine IANA-Zone wie "Europe/Istanbul" oder "America/New_York".

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, err := time.LoadLocation("UTC")
    fmt.Println(loc, err)
}

Zeitzonen mit In umwandeln

t.In(loc) gibt denselben Zeitpunkt zurück, dargestellt in einer anderen Zone. Der zugrunde liegende Zeitpunkt ändert sich nicht, sondern nur seine Darstellung.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(t.In(time.UTC).Hour())
}

Gleicher Zeitpunkt, andere Uhrzeit

Mittag in UTC ist ein einzelner Zeitpunkt, aber eine Person in einer anderen Zone sieht eine andere Uhrzeit. Die Sub-Differenz zwischen beiden ist null.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    u := t.UTC()
    fmt.Println(t.Sub(u))
}

Zeit in einer Zone erzeugen

Übergeben Sie eine Location als letztes Argument an time.Date, um eine Zeit direkt in dieser Zone zu erzeugen.

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, _ := time.LoadLocation("UTC")
    t := time.Date(2026, 5, 30, 9, 0, 0, 0, loc)
    fmt.Println(t.Hour())
}

Den Zonen-Offset auslesen

t.Zone() gibt die Abkürzung der Zone und ihren Offset von UTC in Sekunden zurück.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    name, offset := t.Zone()
    fmt.Println(name, offset)
}

Feste Zonen

Wenn Sie keine vollständigen IANA-Regeln benötigen, erzeugt time.FixedZone(name, offsetSeconds) eine einfache Zone mit konstantem Offset.

package main

import (
    "fmt"
    "time"
)

func main() {
    loc := time.FixedZone("GMT+3", 3*3600)
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, loc)
    name, off := t.Zone()
    fmt.Println(name, off)
}

Über Zonen hinweg formatieren

Wandeln Sie den Zeitstempel vor dem Formatieren mit In um, damit er in der Zeitzone der lesenden Person angezeigt wird.

package main

import (
    "fmt"
    "time"
)

func main() {
    loc := time.FixedZone("GMT+3", 3*3600)
    t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(t.In(loc).Format("15:04 MST"))
}

UTC speichern, lokal anzeigen

Eine weit verbreitete Regel lautet: Speichern und berechnen Sie in UTC und wandeln Sie Zeiten erst bei der Anzeige für Benutzer in eine lokale Zone um. Dadurch vermeiden Sie Mehrdeutigkeiten.

package main

import (
    "fmt"
    "time"
)

func main() {
    stored := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    loc := time.FixedZone("GMT+2", 2*3600)
    fmt.Println("shown:", stored.In(loc).Hour())
}

Fehler beim Laden behandeln

LoadLocation kann fehlschlagen, wenn die Zonendatenbank fehlt oder der Name unbekannt ist. Prüfen Sie den Fehler immer.

package main

import (
    "fmt"
    "time"
)

func main() {
    _, err := time.LoadLocation("Mars/Olympus")
    if err != nil {
        fmt.Println("unknown zone")
    }
}

Kurze Überprüfung

Was ändert t.In(loc)?

Zusammenfassung: Zeitzonen

Sie haben gelernt, mit Locations zu arbeiten:

  • Jede Zeitangabe hat eine Location; UTC und Local sind integriert.
  • Laden Sie benannte Zonen mit LoadLocation oder erzeugen Sie Offsets mit FixedZone.
  • Wandeln Sie mit In um; speichern Sie in UTC und zeigen Sie Zeiten lokal an.
package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 15, 0, 0, 0, time.UTC)
    loc := time.FixedZone("GMT-5", -5*3600)
    fmt.Println(t.In(loc).Format("15:04 MST"))
}

Häufig gestellte Fragen

Ist die Lektion „Zeitzonen“ kostenlos?

Ja — der vollständige Text von „Zeitzonen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Zeitzonen“?

Mit Ortsangaben arbeiten Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Zeitzonen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Zeit und Dauer
  2. Formatierung und Parsing
  3. Timer und Ticker
  4. Zeitzonen
← Zurück zu Go Academy