Как исправить «astimezone () нельзя применить к наивной дате и времени» - PullRequest
0 голосов
/ 31 мая 2019

Возможно ли получить конкретную проблему с ОС Debian для использования astimezone ()? Я использую один и тот же код в Python 3 для обеих ОС: Ubuntu и Debian.

Первый в порядке, чтобы использовать

Второй получает ошибку с той же инструкцией

LOCAL_TIMEZONE = datetime.datetime.now (). Astimezone (). Tzinfo

ошибка Debian: «ValueError: astimezone () нельзя применить к наивному дате и времени»

Ubuntu работает хорошо

Если бы кто-то еще сталкивался с этим и знал, что он просто читает то, что здесь, ну, было бы неплохо, если бы вы сказали мне, я был бы рад. Заранее спасибо!

1 Ответ

0 голосов
/ 31 мая 2019

Я на Ubuntu и получаю ту же ошибку на Python 3.5.
Я думаю, что-то в настройках системы локали. pytz может решить эту проблему, но могут существовать более простые решения:

import datetime as dt
import pytz

t = dt.datetime.now()
local_tz = pytz.timezone("Europe/Rome")

>>> print(local_tz.localize(t))
2019-05-31 12:09:48.199220+02:00

>>> print(local_tz.localize(t).tzinfo)
Europe/Rome

>>> print(local_tz.localize(t).astimezone(pytz.UTC))
2019-05-31 10:09:48.199220+00:00
...