【问题标题】:Delete time from datetime format in django从 django 中的日期时间格式中删除时间
【发布时间】:2017-07-10 01:38:49
【问题描述】:

我需要发送一封带有日期的电子邮件,日期应为“mm/dd/yyyy”。

我从数据库中得到这种格式的日期:

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 日下午 4:40

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

【问题讨论】:

    标签: python django datetime time format


    【解决方案1】:

    datetime 对象有一个date() 方法。这是获得您想要的最简单的方法。

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

    【讨论】:

      【解决方案2】:

      显然我唯一需要做的就是将"SHORT_DATETIME_FORMAT" 更改为"SHORT_DATE_FORMAT",这样我们就可以摆脱时间部分。

      谢谢大家!

      【讨论】:

        【解决方案3】:

        带时间的字段只是 Python 中的 datetime 对象。您应该可以使用strftime 将其转换为您想要的字符串。

        https://docs.python.org/2/library/datetime.html#datetime.date.strftime

        【讨论】:

          【解决方案4】:

          假设您要从数据库中取出一个日期时间对象(例如,不清楚您是否已将其保存为字符串,但它看起来就像在 isoformat() 中输出style) - 例如,在终端中检查日期字段时,我经常会遇到这种情况:

          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 来呈现您喜欢的字符串。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-11-23
            • 1970-01-01
            • 1970-01-01
            • 2012-12-26
            • 1970-01-01
            • 2015-03-08
            • 1970-01-01
            相关资源
            最近更新 更多