2012-06-08 54 views
3

在DB中,我有表(用戶),它爲該用戶存儲時區(作爲字符串值,例如:「歐洲/奧斯陸」)。 現在,我需要獲得所有用戶,當地時間現在是例如:9AM。pytz:獲取所有時區,現在具體時間

有沒有什麼好的方法來做到這一點,而不是讓所有的用戶循環?如果pytz能夠返回時區列表,那麼現在的時間是9AM,我可以使用簡單的IN SQL語句。

回答

10
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 
+0

是的,就是這樣! –

+0

太棒了!正是我想要的。 – aqs