2017-02-21 28 views
1

У меня есть этот кодPython экспорт дата и время в формат CSV

import csv 

def export_failures_all(request): 
    response = HttpResponse(content_type='text/csv') 
    response['Content-Disposition'] = 'attachment; filename="failures.csv"' 

    writer = csv.writer(response, delimiter=';', dialect = 'excel') 
    response.write(u'\ufeff'.encode('utf8')) 
    writer.writerow(['Maszyna', 'Wydział', 'Opis', 'Data dodania', 'Data rozpoczęcia naprawy', 'Data zakończenia naprawy', 'Zgłaszający', 'Przyjęte przez', 'Status']) 
    awarie = Awaria.objects.all().values_list('maszyna__nazwa', 'wydzial__nazwa', 'description', 'add_date', 'repair_date', 'remove_date', 'user__username', 'sur__username', 'status__nazwa').order_by('-id') 

    for awaria in awarie: 
     writer.writerow(awaria) 

    return response 

Проблема у меня есть это с add_date, repair_date, remove_date потому что есть DateTimeField и в CSV файл они с секундами:

2017-02-14 09:50:19.271833+00:00 

2017-02-14 08:38:09.362218+00:00 

и я хочу вот так:

2017-02-14 09:50 

2017-02-14 08:38 

Любые идеи, как его достичь?

ответ

1

Формат это прежде, выполнив:

my_datetime.strftime("%Y-%m-%d %H:%M")

От How do I turn a python datetime into a string, with readable format date?

Чтобы обновить все даты в списке (при условии, сво список списков)

values_list = [[x.strftime("%Y-%m-%d %H:%M") if isinstance(x, datetime.datetime) else x for x in row] for row in values_list] 
+0

как я могу управлять этим в values_list? – azic

+0

Вы можете со списком понимания. Я уточню свой ответ. – AJPennster

+0

спасибо. Он работает отлично. Важно: import datetime NOT from datetime import datetime – azic