2013-10-03 2 views
1

Я работаю над утилитой для загрузки изображений, а часть функциональности заключается в анализе данных IPTC и EXIF ​​изображений.Простой способ создания объекта даты из строки

IPTCInfo получает информацию, что нужно, но поля даты в формате 20130925.

Теперь я могу нарушить это число до 2013 года в 09 25 и создать date объект. Прежде чем я это сделаю, есть ли уже существующие функции для решения этой проблемы?

+0

Почему я получаю такое ощущение, что в 7986 лет они собираются вытащить меня из криогенного выхода на пенсию, чтобы исправить вашу проблему y10k? :) – abarnert

ответ

8

Класс date не имеет функции строковой разборки, но класс datetime делает, strptime.

Итак, первый сделать datetime, затем извлечь date его часть:

>>> s = '20130925' 
>>> dt = datetime.datetime.strptime(s, '%Y%m%d') 
>>> d = dt.date() 
>>> d 
datetime.date(2013, 9, 25) 

Если вы не понимаете, где '%Y%m%d' приходит, см strftime() and strptime() Behavior.

1

Вы можете использовать datetime.strptime:

>>> import datetime 
>>> datetime.datetime.strptime("20130925","%Y%m%d").date() 
datetime.date(2013, 9, 25) 
+0

За исключением того, что он попросил объект 'date', а не' datetime'. – abarnert

+0

К сожалению, вы правы @abarnert. Я отредактировал свой ответ, чтобы вернуть объект «date». – space

Смежные вопросы