2017-02-20 68 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",我们也就摆脱了时间部分。

谢谢你们!