Eine bestimmte Bank hat Filialen in allen größeren Städten der Welt. Sie öffnen alle um 10:00 Uhr Ortszeit. Wenn sie in einer Zeitzone liegt, in der Sommerzeit gilt, folgt die lokale Öffnungszeit natürlich auch der an die Sommerzeit angepassten Zeit. Wie kann ich also von der Ortszeit auf die UTC-Zeit umstellen?
Was ich brauche, ist eine Funktion to_utc(localdt, tz)
wie diese:
Argumente:
- localdt: Ortszeit, als naives datetime-Objekt, um die Sommerzeit bereinigt
- tz: Zeitzone im TZ-Format, z. B. 'Europa/Berlin'.
Rückgabe:
- datetime-Objekt, in UTC, mit Berücksichtigung der Zeitzone
EDITAR:
Die größte Herausforderung besteht darin, zu erkennen, ob die Ortszeit in einen Zeitraum mit Sommerzeit fällt, was auch bedeutet, dass sie der Sommerzeit angepasst ist.
Für 'Europa/Berlin', das im Sommer +1 Sommerzeit hat:
- 1. Januar 10:00 => 1. Januar 9:00 UTC
- 1. Juli 10:00 => 1. Juli 8:00 UTC
Für 'Afrika/Lagos', das keine Sommerzeit hat:
- 1. Januar 10:00 => 1. Januar 9:00 UTC
- 1. Juli 10:00 => 1. Juli 9:00 UTC