3

DBには、そのユーザーのタイムゾーンを(文字列値として、たとえば「Europe/Oslo」として)格納するテーブル(User)があります。ここで、すべてのユーザーを取得する必要があります。ここで、現在の現地時間は例: 午前 9 時です。

すべてのユーザーをループさせずに、これを行う良い方法はありますか? タイムゾーンのリストを返すことができればpytz、今のところ午前 9 時ですが、単純なINSQL ステートメントを使用できます。

4

1 に答える 1

12
import datetime
import pytz

now = datetime.now(pytz.utc)
# datetime.datetime(2012, 6, 8, 10, 31, 58, 493905, tzinfo=<UTC>)

[tz for tz in pytz.common_timezones_set if now.astimezone(pytz.timezone(tz)).hour == 9]
# ['Atlantic/Cape_Verde']

[tz for tz in pytz.common_timezones_set if now.astimezone(pytz.timezone(tz)).hour == 12]
# returns a list of 45 timezones, 'Europe/Oslo' included
于 2012-06-08T10:32:49.290 に答える