Теперь, чтобы преобразовать эту строку в объект даты и времени в Python или Django? - PullRequest
3 голосов
/ 13 октября 2010

Теперь, чтобы преобразовать эту строку в объект даты и времени в Python или django?

2010-08-17T19:00:00Z
2010-08-17T18:30:00Z
2010-08-17T17:05:00Z
2010-08-17T14:30:00Z
2010-08-10T22:20:00Z
2010-08-10T21:20:00Z
2010-08-10T20:25:00Z
2010-08-10T19:30:00Z
2010-08-10T19:00:00Z
2010-08-10T18:30:00Z
2010-08-10T17:30:00Z
2010-08-10T17:05:00Z
2010-08-10T17:05:00Z
2010-08-10T15:30:00Z
2010-08-10T14:30:00Z

когда я делаю это datestr=datetime.strptime( datetime, "%Y-%m-%dT%H:%M:%S" )

это говорит мне, что unconverted data remains: Z

Ответы [ 4 ]

8 голосов
/ 13 октября 2010

Вы можете анализировать строки как есть без необходимости нарезки, если вы не возражаете против использования удобного модуля dateutil. Например,

>>> from dateutil.parser import parse
>>> s = "2010-08-17T19:00:00Z"
>>> parse(s)
datetime.datetime(2010, 8, 17, 19, 0, tzinfo=tzutc())
>>> 
5 голосов
/ 13 октября 2010

Используйте нарезку, чтобы удалить "Z", прежде чем предоставить строку для преобразования

datestr=datetime.strptime( datetime[:-1], "%Y-%m-%dT%H:%M:%S" )

>>> test = "2010-08-17T19:00:00Z"
>>> test[:-1]
'2010-08-17T19:00:00'
2 голосов
/ 13 октября 2010

измените строку формата на ""% Y-% m-% dT% H:% M:% SZ ", чтобы она включала завершающий Z (что делает его более не преобразованным). Обратите внимание, что это Zвозможно, это указывает на то, что время указано в UTC, что может быть чем-то, что вам нужно учитывать, иначе

1 голос
/ 13 октября 2010

Похоже, ISO 8601 даты .Если ваш часовой пояс всегда один и тот же, просто удалите последнюю букву, прежде чем анализировать ее с помощью strptime (например, путем разрезания).

Z указывает часовой пояс, поэтому убедитесь, что вы учитываете его при преобразованиидата-время другого часового пояса.Если часовой пояс может измениться в вашем приложении, вам придется также проанализировать эту информацию и соответственно изменить объект datetime.

Вы также можете использовать модуль pyiso8601 для анализа этих дат ISO,Скорее всего, он также будет работать с небольшими различными форматами даты ISO.Если ваши данные могут содержать разные часовые пояса, я бы предложил использовать этот модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...