datetime.datetime.fromtimestamp()
возвращает местное время . Из документации :
Возвращает локальную дату и время, соответствующие метке времени POSIX, например, возвращается time.time()
. Если необязательный аргумент tz
равен None
или не указан, отметка времени преобразуется в локальные дату и время платформы, а возвращаемый объект datetime является наивным.
Значение метки времени - это смещение в секундах от значения UNIX эпохи , полночь 1 января 1970 года, в часовом поясе UTC. Местное время - это общесистемное настроенное смещение от UTC, местного часового пояса.
Если ваша виртуальная машина дает неожиданные результаты, вам необходимо настроить часовой пояс ОС.
Либо игнорируйте часовые пояса и работайте только со временем в часовом поясе UTC. Для отметок времени это означает использование функции datetime.datetime.utcfromtimestamp()
.
Ваша конкретная отметка времени - 13:50 UTC:
>>> dt = 1546955400
>>> from datetime import datetime
>>> datetime.utcfromtimestamp(dt)
datetime.datetime(2019, 1, 8, 13, 50)
>>> print(_)
2019-01-08 13:50:00
, поэтому ваша виртуальная машина настроена на часовой пояс UTC или GMT (последний в настоящее время находится на UTC + 0, пока не будет переключен на британское летнее время часовой пояс BST). Ваша локальная система находится в UTC + 2 часовых поясах , учитывая ваше заявленное местоположение из вашего профиля, которое будет EEE, пасхальное европейское время .
Другой вариант - создать временную метку с учетом часового пояса, передав аргумент tz
. Если у вас есть конкретное смещение UTC, просто создайте datetime.timezone()
экземпляр для этого смещения:
utcplus2 = datetime.timezone(datetime.timedelta(hours=2))
datetime.datetime.fromtimestamp(dt, utcplus2)
Однако обычно лучше хранить и работать с экземплярами UTC datetime
повсюду и преобразовывать их в определенные часовые пояса только при отображении информации пользователям. Это упрощает обработку даты и времени, поскольку позволяет избежать ряда случаев и проблем, связанных с углом времени часового пояса, таких как смешивание информации о дате и времени из разных часовых поясов и часовых поясов с различием летнего и зимнего времени.