2012-12-01 2 views
0

Я использую внешний интерфейс API, который возвращает дату (как строки) в странном формате:странные временные метки и timedelta форматы - как их преобразовать?

2012-09-26T15:44:10.376000 #timestamp 
0:00:01.714000 #delta (some time duration) 

Я хочу, чтобы преобразовать их в этот формат:

19 Sep 2012 17:02 
0:17:34 

Есть ли простой способ сделать это? Я могу преобразовать их в свои view или в template

изменить ---------------------------------- -------------------------

Я нашел решение для временной метки:

date_str = '2012-09-26T15:44:10.376000' 
date = datetime.strptime(date_str.split('.')[0],'%Y-%m-%dT%H:%M:%S') 
str = date.strftime('%m %b %Y %H:%M') 
+1

Это совсем не странный формат ... это ISO-8601. Что вы уже пробовали для преобразования строк? –

+0

ничего - я только начал питон и django - все еще ищу решение – user606521

+0

Ну что вы сделали? Я просто набрал «формат даты и времени в python» и получил кучу интересных результатов. –

ответ

3

Установка dateutil, а затем:

>>> import dateutil.parser 
>>> dt = dateutil.parser.parse('2012-09-26T15:44:10.376000') 
>>> dt.strftime('%d %b %Y %H:%M') 
'26 Sep 2012 15:44' 

Для django вы можете передать объект dt своим шаблон и использовать :

{{ dt|date:"d b Y H:M" }} 
+0

Я нашел также парсер даты django: 'from django.utils.dateparse import parse_datetime'. В фильтре даты вам нужно пропустить знаки '%'. благодаря – user606521