0Pricing
Ruby Academy · Lektion

Zeitzonen

Mit Zeitzonen umgehen

Zeitzonen ist eine kostenlose Ruby 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 Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Zeitzonen wichtig sind

Je nach Ort sieht derselbe Zeitpunkt anders aus. Ein falscher Umgang mit Zeitzonen führt zu Fehlern mit einer Abweichung von mehreren Stunden. Deshalb müssen Sie ausdrücklich angeben, welche Zeitzone eine Zeitangabe verwendet.

t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.zone || t.utc_offset)
puts(t.utc_offset)

UTC: Die Referenzzeitzone

UTC (Coordinated Universal Time) ist die globale Referenz. Speichern und berechnen Sie Zeiten in UTC und konvertieren Sie sie erst für die Anzeige.

t = Time.utc(2026, 5, 30, 9, 0, 0)
puts(t.utc?)
puts(t.hour)

Lokale Zeit

Time.now und Time.local verwenden die lokale Zeitzone des Rechners. Der Abstand zu UTC wird von utc_offset in Sekunden angegeben.

t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.utc_offset)
puts(t.utc_offset / 3600)

In UTC konvertieren

getutc (Alias utc) gibt denselben Zeitpunkt in UTC zurück. Die Uhrzeit ändert sich, der Zeitpunkt bleibt jedoch identisch.

t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.hour)
puts(t.getutc.hour)

In einen lokalen Offset konvertieren

getlocal akzeptiert eine explizite Offset-Zeichenkette und gibt den Zeitpunkt in dieser Zeitzone zurück.

t = Time.utc(2026, 5, 30, 9, 0, 0)
istanbul = t.getlocal('+03:00')
puts(istanbul.hour)

Offset beim Erstellen angeben

Übergeben Sie eine Offset-Zeichenkette als letztes Argument an Time.new, um die Zeitzone beim Erstellen festzulegen.

ny = Time.new(2026, 5, 30, 8, 0, 0, '-04:00')
puts(ny.utc_offset / 3600)
puts(ny.getutc.hour)

Gleicher Zeitpunkt, verschiedene Uhren

Zwei Zeitangaben in verschiedenen Zeitzonen können denselben exakten Zeitpunkt darstellen. Beim Vergleich wird der zugrunde liegende Zeitpunkt verwendet, daher sind sie gleich.

a = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
b = Time.new(2026, 5, 30, 9, 0, 0, '+00:00')
puts(a == b)

Offsets in ISO 8601

ISO-8601-Zeitstempel enthalten den Offset, beispielsweise +03:00 oder Z für UTC. Dadurch sind sie systemübergreifend eindeutig.

require 'time'
t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.iso8601)
puts(t.getutc.iso8601)

Zeichenketten mit Zeitzone parsen

Time.parse berücksichtigt einen Offset, der in der Eingabezeichenkette enthalten ist.

require 'time'
t = Time.parse('2026-05-30T12:00:00+03:00')
puts(t.utc_offset / 3600)
puts(t.getutc.hour)

Best Practice: UTC speichern

Das sicherste Vorgehen ist: UTC speichern, Berechnungen in UTC durchführen und erst bei der Anzeige in die Zeitzone des Benutzers konvertieren. Dadurch vermeiden Sie Mehrdeutigkeiten vollständig.

stored = Time.utc(2026, 5, 30, 9, 0, 0)
display = stored.getlocal('+03:00')
puts("UTC #{stored.hour} -> Local #{display.hour}")

Vorsicht bei der Sommerzeit

Ein fester Offset wie +03:00 berücksichtigt die Sommerzeit nicht. Für benannte Zeitzonen mit Sommerzeitregeln werden Bibliotheken wie das tzinfo-Gem benötigt. Die zentrale Klasse Time kennt nur feste Offsets.

t = Time.new(2026, 7, 1, 12, 0, 0, '+02:00')
puts(t.utc_offset / 3600)

Schnelltest

Welche Strategie wird für den Umgang mit Zeitzonen in einer Anwendung empfohlen?

Zusammenfassung: Zeitzonen

Sie haben gelernt, korrekt mit Zeitzonen umzugehen:

  • UTC ist die globale Referenz
  • getutc und getlocal konvertieren, ohne den Zeitpunkt zu ändern
  • Offsets werden beim Erstellen oder in ISO-8601-Zeichenketten festgelegt
  • Der gleiche Zeitpunkt in verschiedenen Zeitzonen wird als gleich verglichen
  • UTC speichern, lokale Zeit anzeigen; feste Offsets berücksichtigen die Sommerzeit nicht
require 'time'
puts(Time.utc(2026,5,30,9).getlocal('+03:00').hour)

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 Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Zeitzonen“?

Mit Zeitzonen umgehen Du übst Ruby 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 Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby 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 Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby 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 Datums-Classes
  2. Parsen und Formatieren
  3. Zeitberechnungen
  4. Zeitzonen
← Zurück zu Ruby Academy