Я пытаюсь преобразовать произвольные строки даты / времени с помощью модуля Python dateparser
. Когда я опускаю информацию о часовом поясе, происходит следующее:
>>> import dateparser
>>> import time
>>> myctime = time.ctime(1500)
>>> myctime
'Wed Dec 31 16:25:00 1969'
>>> mytime = dateparser.parse(myctime)
>>> mytime
datetime.datetime(1969, 12, 31, 16, 25)
>>> mytime.timestamp()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
Чтобы обойти вышесказанное, я могу указать часовой пояс для синтаксического анализатора следующим образом:
>>> mytime = parse(myctime, settings={'TIMEZONE': 'UTC', 'RETURN_AS_TIMEZONE_AWARE': True})
>>> mytime
datetime.datetime(1969, 12, 31, 16, 25, tzinfo=<UTC>)
Но затем я пытаюсь вернуть это обратно к отметке времени, и я не получаю обратно свое первоначальное ожидаемое значение 1500
.
>>> mytime.timestamp()
-27300.0
Что я делаю не так? Кажется довольно ясным, что он конвертирует временную метку в какой-то другой часовой пояс, но я не хочу, чтобы это делалось, я хочу, чтобы он всегда давал мне UTC.