Flugzeiten stimmen nicht oder falsche Zeitzone
Lösungen wenn Flugzeiten falsch angezeigt werden oder Zeitzone nicht stimmt
Flugzeiten stimmen nicht oder falsche Zeitzone
Wenn die angezeigten Flugzeiten nicht mit den realen Zeiten übereinstimmen, gibt es mehrere mögliche Ursachen.
Symptome
Schnell-Diagnose (2 Minuten)
Test 1: Zeit auf Display prüfen
Wo zu prüfen:
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:
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':
Problem: Browser verwendet falsche System-Zeitzone
Symptome
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:
Schritt 2: NTP-Synchronisation aktivieren
[CODE_BLOCK]
Einstellungen → System → Datum & Uhrzeit
→ "Automatisches Datum & Uhrzeit" = AN
[CODE_BLOCK]
NTP (Network Time Protocol):
Schritt 3: Browser neu starten
[CODE_BLOCK]
[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
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:
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:
Problem: Bei falscher Zeitzone werden Flüge fälschlich gefiltert
Symptome
"Filtering old flight: ...""Filtering future flight: ..."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
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:
Ursache 5: Zeitumstellung (Sommerzeit/Winterzeit)
Symptome
Hintergrund
Zeitumstellung in Europa:
Automatische Anpassung:
Lösung
Normalerweise kein Problem:
Falls Problem:
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:
2. Server in UTC betreiben:
3. Konsistente Locale verwenden:
4. Zeitzone dokumentieren:
5. Monitoring: