2017-02-20 38 views
0

Мне нужно отправить электронное письмо с датой, а дата должна быть «мм/дд/гггг».Удалить время из формата datetime в django

Из базы данных я получаю дату в следующем формате:

2017-02-26T23:00:00Z

Так я добавил from django.utils import formats вместе со всем импортом, а затем я добавил в моей функции final_date = formats.date_format(input_date, "SHORT_DATETIME_FORMAT") Дела в том, что я получаю именно что я хочу с датой, но и время.

Есть ли способ избавиться от времени в моем форматировании?

Я знаю, что могу использовать функцию split(), но это кажется уродливым способом добиться этого.

TL; DR

То, что я -> 02/20/2017 4:40 вечера

То, что я хочу -> 02/20/2017

ответ

0

Предполагая, что вы получаете из объекта типа DateTime из базы данных (это неясно того, сохранены ли, что в виде строки, например, но это выглядит как это выводится в isoformat() стиле) - Я часто получаю это, например, при рассмотрении DateField в терминале:

datetime.datetime(2017, 11, 17, 0, 0, tzinfo=<UTC>)

, то вы можете просто сделать:

datetime_from_database.date(), чтобы просто показать дату. Docs on this.

Теперь, что до сих пор не в ММ/ДД/ГГГГ вы хотели - если это для шаблона, you can manage this in the template с помощью:

{{ date_ value|date:"m D Y" }} 

На самом деле, вы можете сделать это, даже если у вас нет управлял им уже с использованием метода .date(), упомянутого выше.

В качестве альтернативы, если это для чего-то еще, вы можете использовать strftime formatting options, чтобы представить строку, как вам нравится.

1

datetime объекты имеют метод date(). Это самый простой способ получить то, что вы хотите.

final_date = formats.date_format(input_date.date(), "SHORT_DATETIME_FORMAT") 
1

Так, видимо, единственное, что мне нужно сделать, это изменить "SHORT_DATETIME_FORMAT" по "SHORT_DATE_FORMAT", и таким образом мы избавляемся от времени части.

Спасибо, ребята!