2017-02-20 105 views
0

我需要發送包含日期的電子郵件,日期應該是「mm/dd/yyyy」。從django的日期時間格式中刪除時間

從數據庫中,我得到這個格式的日期:

2017-02-26T23:00:00Z

所以我添加from django.utils import formats所有的進口沿,然後我還添加了在我的功能final_date = formats.date_format(input_date, "SHORT_DATETIME_FORMAT") 的事情是,我得到完全相同我想要約會的時間,還有時間。

有沒有什麼辦法擺脫我的格式?

我知道我可以使用函數split(),但這似乎是一個醜陋的方式來實現這一點。

TL; DR

我有什麼 - > 2017年2月20日下午四點40

我想要什麼 - > 2017年2月20日

回答

0

假設你正在從數據庫中獲取了DateTime對象(目前還不清楚是否已經保存,作爲一個字符串,例如,但看起來像它是在isoformat()風格輸出) - 我經常會收到這樣,例如,在檢查終端將DateField時:

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

,那麼你可以這樣做:

datetime_from_database.date()只顯示日期。 Docs on this.

現在,這仍然沒有在MM/DD/YYYY你想要的格式 - 如果它是一個模板,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_DATE_FORMAT"改變"SHORT_DATETIME_FORMAT",我們也就擺脫了時間部分。

謝謝你們!