Мой код python продолжает возвращать свои результаты в UT C время - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть этот код:

def get_events(day, service):
    # Call the Calendar API
    date = datetime.datetime.combine(day, datetime.datetime.min.time())
    end = datetime.datetime.combine(day, datetime.datetime.max.time())
    gmt = timezone('Europe/London')
    date = date.astimezone(gmt)
    end = end.astimezone(gmt)
    events_result = service.events().list(calendarId='primary', timeMin=date.isoformat(), timeMax=end.isoformat(),
                                        singleEvents=True,
                                        orderBy='startTime').execute()
    events = events_result.get('items', [])

Использование API Календаря Google. Тем не менее, я все еще, кажется, всегда получаю свои ответы в UT C время, на 5 часов меньше моего времени. Любая помощь приветствуется

1 Ответ

0 голосов
/ 24 апреля 2020
gmt = timezone('Europe/London')
date = date.astimezone(gmt)
end = end.astimezone(gmt)

Вы получаете то, что просили.

Обновление : если объект datetime находится в другом часовом поясе, но сначала не содержит информацию о часовом поясе ("naive datetime") добавить эту информацию:

gmt = timezone('Europe/London')
googletz = timezone("EST") # not sure if this one or some other
date = date.replace(tzinfo=googletz).astimezone(gmt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...