Flugzeiten stimmen nicht oder falsche Zeitzone

Lösungen wenn Flugzeiten falsch angezeigt werden oder Zeitzone nicht stimmt

9 min readLast updated: 1/15/20240

Flugzeiten stimmen nicht oder falsche Zeitzone

Wenn die angezeigten Flugzeiten nicht mit den realen Zeiten übereinstimmen, gibt es mehrere mögliche Ursachen.

Symptome

  • ⏰ Flugzeiten sind 1-2 Stunden falsch (vor oder nach)
  • 🌅 Sonnenauf-/untergang passt nicht zur Lokalzeit
  • 🕐 "Last updated" Zeit stimmt nicht
  • 🌍 Flüge für "morgen" erscheinen in "heute" Liste
  • 📅 Flüge für "heute" fehlen komplett
  • 🔢 Alle Zeiten durchgehend +1h oder +2h versetzt
  • Schnell-Diagnose (2 Minuten)

    Test 1: Zeit auf Display prüfen

    Wo zu prüfen:

  • Header rechts oben: Aktuelle Uhrzeit
  • Footer: "Last updated" Timestamp
  • Flug-Zeiten: Scheduled departure/arrival
  • Beispiel-Abweichung:

    [CODE_BLOCK]

    Aktuell: 14:00 Uhr Lokalzeit (Wien)

    Display zeigt: 13:00 Uhr ← 1 Stunde zu früh!

    Grund: UTC-Zeit (12:00) + falsche Timezone-Konvertierung

    [CODE_BLOCK]

    Test 2: System-Zeit prüfen

    Auf Android-Display:

    [CODE_BLOCK]

    Einstellungen → System → Datum & Uhrzeit

    → Prüfen: Stimmt Zeit und Datum?

    [CODE_BLOCK]

    Erwartung:

  • Zeit: Korrekt für Ihren Standort
  • Datum: Aktuelles Datum
  • Zeitzone: Europa/Wien (oder Ihr Standort)
  • Auto-Zeit: AN (empfohlen)
  • Test 3: Browser-Zeitzone prüfen

    Browser Console (F12):

    [CODE_BLOCK]javascript

    // Aktuelle Browser-Zeit:

    console.log(new Date().toString())

    // Beispiel: "Wed Dec 04 2024 14:00:00 GMT+0100 (CET)"

    // Zeitzone:

    console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)

    // Erwartung: "Europe/Vienna" (oder Ihr Standort)

    [CODE_BLOCK]

    Ursache 1: Browser-Zeitzone falsch konfiguriert

    Technische Details

    Code-Location: /components/display/FlightRow.tsx

    Zeiten werden mit toLocaleTimeString formatiert:

    [CODE_BLOCK]typescript

    const displayTime = info.actual || info.estimated || info.scheduled

    const time = format(new Date(displayTime), 'HH:mm')

    // Oder für Timestamp:

    lastUpdate.toLocaleTimeString('de-AT', {

    hour: '2-digit',

    minute: '2-digit',

    second: '2-digit'

    })

    [CODE_BLOCK]

    Locale 'de-AT':

  • Deutschland/Österreich Format
  • 24-Stunden-Format (HH:mm)
  • Zeitzone: Europe/Vienna (CET/CEST)
  • Problem: Browser verwendet falsche System-Zeitzone

    Symptome

  • Zeiten konsistent falsch (immer +X Stunden)
  • Berechnung basiert auf falscher Zeitzone
  • Uhrzeit im Header auch falsch
  • Lösung

    Schritt 1: Android System-Zeitzone setzen

    [CODE_BLOCK]

    Einstellungen → System → Datum & Uhrzeit

    → "Automatische Zeitzone" = AN

    → "Zeitzone auswählen" = Europa/Wien (oder Ihr Standort)

    [CODE_BLOCK]

    Wichtige Zeitzonen:

  • Europa/Wien: UTC+1 (Winter), UTC+2 (Sommer)
  • Europa/Berlin: Gleich wie Wien
  • Europa/Zürich: Gleich wie Wien
  • UTC: Ohne Sommerzeit-Anpassung
  • Schritt 2: NTP-Synchronisation aktivieren

    [CODE_BLOCK]

    Einstellungen → System → Datum & Uhrzeit

    → "Automatisches Datum & Uhrzeit" = AN

    [CODE_BLOCK]

    NTP (Network Time Protocol):

  • Synchronisiert Zeit mit Internet-Zeitserver
  • Garantiert korrekte Zeit (±1 Sekunde)
  • Aktualisiert automatisch bei Zeitumstellung
  • Schritt 3: Browser neu starten

    [CODE_BLOCK]

  • Chrome komplett schließen (Multitasking → wegwischen)
  • Android-Gerät neu starten (empfohlen)
  • Chrome öffnen → Display-URL laden
  • [CODE_BLOCK]

    Schritt 4: Verifizierung

    Console-Test:

    [CODE_BLOCK]javascript

    // Sollte korrekte Zeitzone zeigen:

    console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)

    // Erwartung: "Europe/Vienna"

    // Sollte korrekte Zeit zeigen:

    console.log(new Date().toLocaleString('de-AT'))

    // Erwartung: "4.12.2024, 14:00:00" (aktuelle Zeit)

    [CODE_BLOCK]

    Ursache 2: UTC vs. Lokalzeit Verwirrung

    Technische Details

    Code-Location: /lib/aviationstack.ts (Zeilen 97-106)

    AviationStack API gibt Zeiten in Airport Lokalzeit:

    [CODE_BLOCK]json

    {

    "departure": {

    "scheduled": "2024-12-04T10:00:00+00:00", ← UTC-Format

    "timezone": "Europe/Vienna" ← Aber Lokalzeit gemeint!

    }

    }

    [CODE_BLOCK]

    Achtung: +00:00 bedeutet NICHT UTC, sondern ist nur Format!

    Konvertierung im Code:

    [CODE_BLOCK]typescript

    const scheduledTime = new Date(flight.departure.scheduled)

    // → JavaScript Date-Objekt (automatisch in Browser-Zeitzone)

    const formatted = scheduledTime.toLocaleTimeString('de-AT', {

    hour: '2-digit',

    minute: '2-digit'

    })

    // → HH:mm in Browser-Zeitzone

    [CODE_BLOCK]

    Problem: Wenn Browser-Zeitzone ≠ Airport-Zeitzone

    Symptome

  • Zeiten sind exakt UTC (kein Timezone-Offset)
  • Oder: Zeiten sind in falscher Zeitzone
  • "Last updated" zeigt UTC statt Lokalzeit
  • Lösung

    Schritt 1: API-Response prüfen

    [CODE_BLOCK]bash

    curl "https://lobbyflight.com/api/flights/hotel-id?type=departures" | jq '.data[0].departure'

    [CODE_BLOCK]

    Beispiel-Response:

    [CODE_BLOCK]json

    {

    "scheduled": "2024-12-04T10:00:00+00:00",

    "timezone": "Europe/Vienna",

    "iata": "VIE"

    }

    [CODE_BLOCK]

    Schritt 2: Timezone-Mapping prüfen

    Im Code sollte Timezone respektiert werden:

    [CODE_BLOCK]javascript

    // In Browser Console testen:

    const apiTime = "2024-12-04T10:00:00+00:00"

    const date = new Date(apiTime)

    console.log('UTC:', date.toUTCString())

    console.log('Local:', date.toLocaleString('de-AT', { timeZone: 'Europe/Vienna' }))

    // Sollte beide Male 10:00 zeigen (für Vienna)

    [CODE_BLOCK]

    Schritt 3: Sommerzeit berücksichtigen

    Wien Zeitzone:

  • Winter (Nov-März): CET = UTC+1
  • Sommer (März-Nov): CEST = UTC+2
  • Beispiel:

    [CODE_BLOCK]

    API sagt: "10:00" im Dezember (Winter)

    UTC: 09:00

    Wien (CET): 10:00 ← Korrekt!

    API sagt: "10:00" im Juli (Sommer)

    UTC: 08:00

    Wien (CEST): 10:00 ← Korrekt!

    [CODE_BLOCK]

    Automatisch: Browser macht das richtig, wenn Zeitzone korrekt gesetzt

    Ursache 3: Flüge außerhalb Zeitfenster gefiltert

    Technische Details

    Code-Location: /lib/aviationstack.ts (Zeilen 185-218)

    Flights werden nach Zeit gefiltert:

    [CODE_BLOCK]typescript

    const now = new Date()

    const minTime = new Date(now.getTime() - 4 * 60 * 60 * 1000) // -4h

    const maxTime = new Date(now.getTime() + 24 * 60 * 60 * 1000) // +24h

    const scheduledTime = new Date(flight.departure.scheduled)

    if (scheduledTime < minTime) {

    console.log(Filtering old flight: ${flight.flight.iata})

    return false // Zu alt, nicht anzeigen

    }

    if (scheduledTime > maxTime) {

    console.log(Filtering future flight: ${flight.flight.iata})

    return false // Zu weit in Zukunft

    }

    [CODE_BLOCK]

    Zeitfenster:

  • Departures: Jetzt bis +24 Stunden
  • Arrivals: -4 Stunden bis +24 Stunden
  • Problem: Bei falscher Zeitzone werden Flüge fälschlich gefiltert

    Symptome

  • Viele Flüge fehlen
  • Console-Log: "Filtering old flight: ..."
  • Oder: "Filtering future flight: ..."
  • Nur Flüge bestimmter Tageszeiten sichtbar
  • Lösung

    Schritt 1: Server-Zeit prüfen

    Auf Server (Admin-Zugriff):

    [CODE_BLOCK]bash

    Aktuelle Server-Zeit:

    date

    Erwartung: Korrekte UTC-Zeit

    Zeitzone:

    timedatectl

    Erwartung: UTC (auf Servern üblich)

    [CODE_BLOCK]

    Schritt 2: Code-Filtering verifizieren

    Console-Log aktivieren:

    [CODE_BLOCK]javascript

    // In Browser Console:

    localStorage.setItem('debug', 'true')

    // → Aktiviert detaillierte Logs

    // Seite neu laden, dann:

    // Logs zeigen: Welche Flüge gefiltert werden

    [CODE_BLOCK]

    Erwartete Logs:

    [CODE_BLOCK]

    Current time: 2024-12-04T13:00:00Z (UTC)

    Min time: 2024-12-04T09:00:00Z (-4h)

    Max time: 2024-12-05T13:00:00Z (+24h)

    Flight OS501 scheduled: 2024-12-04T14:00:00Z → INCLUDED

    Flight LH1234 scheduled: 2024-12-04T02:00:00Z → FILTERED (too old)

    Flight LX456 scheduled: 2024-12-06T10:00:00Z → FILTERED (too future)

    [CODE_BLOCK]

    Schritt 3: Zeitzone-Offset korrigieren

    Falls Server-Zeitzone falsch:

    [CODE_BLOCK]typescript

    // Workaround in Code (nicht ideal):

    const now = new Date()

    const offset = 1 * 60 * 60 * 1000 // +1h für CET

    const localNow = new Date(now.getTime() + offset)

    // Besser: Server-Zeitzone korrekt setzen!

    [CODE_BLOCK]

    Ursache 4: 12h vs. 24h Format

    Symptome

  • Zeiten im 12h-Format (AM/PM) statt 24h
  • Verwirrend für europäische Gäste
  • 14:00 wird zu "2:00 PM"
  • Lösung

    Locale-Setting prüfen:

    [CODE_BLOCK]typescript

    // Code sollte 'de-AT' verwenden (24h Format):

    time.toLocaleTimeString('de-AT', {

    hour: '2-digit',

    minute: '2-digit'

    })

    // → "14:00" (korrekt)

    // Nicht 'en-US' (12h Format):

    time.toLocaleTimeString('en-US', {

    hour: '2-digit',

    minute: '2-digit'

    })

    // → "2:00 PM" (falsch für Europa!)

    [CODE_BLOCK]

    Falls falsch im Code:

  • → Support kontaktieren
  • → Code-Fix nötig
  • Ursache 5: Zeitumstellung (Sommerzeit/Winterzeit)

    Symptome

  • Zeiten plötzlich 1 Stunde falsch
  • Nur 2x pro Jahr (März & November)
  • Nach Zeitumstellung am Wochenende
  • Hintergrund

    Zeitumstellung in Europa:

  • Sommerzeit: Letzter Sonntag im März (02:00 → 03:00)
  • Winterzeit: Letzter Sonntag im Oktober (03:00 → 02:00)
  • Automatische Anpassung:

  • Browser: Automatisch (wenn System-Zeit richtig)
  • Server: Automatisch (UTC ändert sich nicht)
  • NTP: Synchronisiert automatisch
  • Lösung

    Normalerweise kein Problem:

  • Android mit "Auto-Zeit" passt an
  • Browser erkennt Sommerzeit automatisch
  • Falls Problem:

  • Gerät neu starten
  • "Auto-Zeit" AUS → AN
  • Warten 5 Minuten (NTP-Sync)
  • Browser neu starten
  • Verifizierung:

    [CODE_BLOCK]javascript

    const date = new Date()

    console.log(date.getTimezoneOffset()) // Minuten-Offset zu UTC

    // Wien:

    // Winter (CET): -60 (UTC+1)

    // Sommer (CEST): -120 (UTC+2)

    [CODE_BLOCK]

    Advanced Troubleshooting

    Zeit-Berechnungen debuggen

    Browser Console:

    [CODE_BLOCK]javascript

    // Aktuelles Date-Objekt:

    const now = new Date()

    console.log('ISO:', now.toISOString()) // UTC

    console.log('Local:', now.toLocaleString()) // Browser-Zeitzone

    console.log('UTC:', now.toUTCString()) // UTC-Format

    // Flugzeit testen:

    const flightTime = "2024-12-04T14:00:00+00:00"

    const date = new Date(flightTime)

    console.log('Parsed:', date.toLocaleString('de-AT'))

    // Sollte: "4.12.2024, 14:00:00" (wenn Wien-Zeitzone)

    [CODE_BLOCK]

    Zeitzone-Datenbank prüfen

    [CODE_BLOCK]javascript

    // Alle verfügbaren Zeitzonen:

    Intl.supportedValuesOf('timeZone').filter(tz => tz.includes('Vienna'))

    // Ausgabe: ["Europe/Vienna"]

    // Test mit verschiedenen Zeitzonen:

    const time = new Date("2024-12-04T14:00:00Z")

    console.log('Vienna:', time.toLocaleString('de-AT', { timeZone: 'Europe/Vienna' }))

    console.log('UTC:', time.toLocaleString('de-AT', { timeZone: 'UTC' }))

    console.log('Berlin:', time.toLocaleString('de-DE', { timeZone: 'Europe/Berlin' }))

    [CODE_BLOCK]

    Prävention

    Best Practices

    1. NTP-Synchronisation immer aktiv:

  • Automatisches Datum & Uhrzeit: AN
  • Automatische Zeitzone: AN
  • Überprüfen nach Android-Updates
  • 2. Server in UTC betreiben:

  • Server-Zeitzone = UTC (Standard)
  • Browser macht Konvertierung zu Lokalzeit
  • Keine Verwirrung mit Sommerzeit
  • 3. Konsistente Locale verwenden:

  • Code: 'de-AT' für 24h-Format
  • Nie mischen mit 'en-US' (12h)
  • Testen in verschiedenen Monaten (Sommer/Winter)
  • 4. Zeitzone dokumentieren:

  • Welche Zeitzone soll Display zeigen?
  • Übereinstimmung mit Hotel-Standort
  • In Setup-Doku festhalten
  • 5. Monitoring:

  • Alert bei Zeit-Abweichung > 5 Minuten
  • Vergleich Display-Zeit mit NTP-Server
  • Log bei Zeitumstellung
  • Verwandte Artikel

  • Setup: "Android-Display konfigurieren"
  • Netzwerk: "NTP-Zeitserver einrichten"
  • Display: "Keine Flüge angezeigt"
  • Data: "Flug-Daten Troubleshooting"
  • Debug-Checkliste

  • [ ] System-Zeit korrekt auf Display?
  • [ ] Zeitzone korrekt (Europe/Vienna)?
  • [ ] Auto-Zeit aktiviert (NTP)?
  • [ ] Browser-Zeitzone korrekt?
  • [ ] Console Timezone-Check OK?
  • [ ] Locale 'de-AT' im Code?
  • [ ] Zeitumstellung berücksichtigt?
  • [ ] API-Response Zeiten plausibel?
  • [ ] Filtering entfernt zu viele Flüge?
  • [ ] Support kontaktiert mit Screenshots?
  • Was this article helpful?