Страна может охватывать несколько часовых поясов. Смещение utc для места может изменяться во времени.
Учитывая код страны и смещение utc, вы можете попытаться найти соответствующий часовой пояс из базы данных Olson tz для текущего времени. Вот вариант ответа @ Mu Mind , который учитывает текущее время (в противном случае результат может быть неожиданным для некоторых часовых поясов):
from datetime import datetime, timedelta
import pytz
country_code, utc_offset = 'de', timedelta(hours=1)
# find matching timezones and print corresponding local time
now_in_utc = datetime.now(pytz.utc)
for zonename in pytz.country_timezones[country_code]:
tz = pytz.timezone(zonename)
local_time = now_in_utc.astimezone(tz)
if tz.utcoffset(local_time) == utc_offset: #NOTE: utc offset depends on time
print("%s\t%s" % (tz.zone, local_time.strftime("%Y-%m-%d %H:%M:%S %Z%z")))
выход
Europe/Berlin 2013-12-02 20:42:49 CET+0100