Python разница между часовыми поясами

Я должен создать код, который может сообщить мне текущее время в любом городе (как переменную) и вывести смещение utc между этим временем и utc. У меня уже есть следующий код, который дает текущее время и смещение от часового пояса, но этот часовой пояс не всегда utc. Примечание: названия городов хранятся в текстовом файле, и пользователь должен иметь возможность добавлять и удалять любой город. Я использую tkinter для графического интерфейса.

from datetime import datetime, timedelta
from pytz import timezone
import pytz

def tz():
    utc = pytz.utc
    amsterdam = timezone('Europe/Amsterdam')
    fmt = '%Y-%m-%d %H:%M:%S %Z%z'
    loc_dt = utc.localize(datetime.today())
    tz = loc_dt.astimezone(amsterdam)
    print(tz.strftime(fmt))

Содержимое файла выглядит следующим образом:

Amsterdam
Brasilia
Los Angeles
Abu Dhabi
Tokyo
Singapore

Может кто-нибудь помочь мне с простым кодом, чтобы сделать это? заранее спасибо

1 ответ

Решение

Вы уже используете pytz, поэтому я бы пошел на:

from datetime import datetime
from pytz import timezone, all_timezones

def to_timezone(dt, tz):
  assert dt.tzinfo is not None
  assert tz in all_timezones
  return dt.astimezone(timezone(tz))

print to_timezone(datetime.now(timezone('UTC')), 'Europe/Amsterdam')

Я установил его на UTC по умолчанию, но суть в следующем:

  • не наивное свидание
  • преобразовать его
Другие вопросы по тегам