Преобразование строки (с часовым поясом) в дату и время в python - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу преобразовать

stringtime = '2020-02-30 10:27:00+01:00'

, чтобы я мог сравнить его с

nowtime = datetime.datetime.utcnow()

, используя

if nowtime > stringtime:
    print(1)

Я пытался strptime:

datetime.datetime.strptime(stringtime, '%Y-%m-%d %H:%M:%S')

Но не могу найти спецификацию формата для часового пояса в документации strptime.

Я также попытался

pandas.Timestamp(stringtime)

, но получил ValueError: could not convert string to Timestamp.

Как это можно сделать?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020
datetime.datetime.strptime(stringtime, '%Y-%m-%d %H:%M:%S%z')

даст вам ожидаемый результат %z - это формат (только Python3), однако ваша исходная дата недействительна, поскольку в феврале нет 30 дней:)

1 голос
/ 27 февраля 2020

Прежде всего: ваш stringtime неверен, не существует 30 февраля. ;)

Вы можете достичь того, что хотите, с помощью dateutil:

import dateutil.parser
stringtime = '2020-03-30 10:27:00+01:00'
dateutil.parser.isoparse(stringtime)
# datetime.datetime(2020, 3, 30, 10, 27, tzinfo=tzoffset(None, 3600))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...