特定の銀行は、世界のすべての主要都市に支店を持っています。それらはすべて現地時間の午前10時に開きます。DSTを使用するタイムゾーン内の場合、もちろん、ローカルの営業時間もDSTで調整された時間に従います。では、現地時間からUTC時間に移動するにはどうすればよいですか。
私が必要としているのは、次のto_utc(localdt, tz)
ような関数です。
引数:
- localdt:localtime、ナイーブ日時オブジェクトとして、DST調整済み
- tz:TZ形式のタイムゾーン(例:「ヨーロッパ/ベルリン」)
戻り値:
- 日時オブジェクト、UTC、タイムゾーン対応
編集:
最大の課題は、現地時間がDSTの期間内にあるかどうかを検出することです。これは、DSTが調整されていることも意味します。
夏時間に+1のDSTを持つ「ヨーロッパ/ベルリン」の場合:
- 1月1日10:00=>1月1日9:00UTC
- 7月1日10:00=>7月1日8:00UTC
DSTがない「アフリカ/ラゴス」の場合:
- 1月1日10:00=>1月1日9:00UTC
- 7月1日10:00=>7月1日9:00UTC