Python 在Django中格式化DateTimeField

Python 在Django中格式化DateTimeField,python,django,django-models,Python,Django,Django Models,使用auto\u now\u add将时间戳保存在Django的DateTimeField中时,请按以下方式添加: creation_timestamp = models.DateTimeField(auto_now_add=True) 该字段以毫秒保存: 2018-11-20T15:58:44.767594-06:00 2018-11-20T15:58:44-06:00 我想将其格式化为在不超过毫秒的情况下显示: 2018-11-20T15:58:44.767594-06:00 201

使用
auto\u now\u add将时间戳保存在Django的
DateTimeField
中时,请按以下方式添加:

creation_timestamp = models.DateTimeField(auto_now_add=True)
该字段以毫秒保存:

2018-11-20T15:58:44.767594-06:00
2018-11-20T15:58:44-06:00
我想将其格式化为在不超过毫秒的情况下显示:

2018-11-20T15:58:44.767594-06:00
2018-11-20T15:58:44-06:00
但我能想到的唯一选择并不能确切地说明我需要什么:

format=“%Y.%m.%dT%H:%m:%S%z”
给了我
2018.11.20T15:58:44-0600
如何按需要格式化此字段


或者,我宁愿保存
DateTimeField
而不使用毫秒,但是
auto\u now\u add
允许这样做吗

如果要在显示时对其进行格式化,可以使用:
creation\u timestamp.strftime(“%Y-%m-%d%H:%m:%S”)

您也可以使用
DateTimeField
将其保存为该格式,但这将要求进行一系列更改,这些更改将应用于整个系统:

在设置文件中设置以下内容:

  • DATETIME\u FORMAT=“%Y-%m-%d%H:%m:%S”
  • L10N=False
    在日期格式方面,使本地化数据不成为先例
  • USE\u TZ=False

  • 但是,请考虑这一变化,默认情况下,该更改将应用于从项目中的<强> > <强>日期时间对象。< / P> < P>显示时,如果要对其进行格式化,则可以使用:<代码> CuroSoTimeTimeStest.STFFET(“%Y-%-%%D%H:%m:%s”)< /C> >/P> 您也可以使用

    DateTimeField
    将其保存为该格式,但这将要求进行一系列更改,这些更改将应用于整个系统:

    在设置文件中设置以下内容:

  • DATETIME\u FORMAT=“%Y-%m-%d%H:%m:%S”
  • L10N=False
    在日期格式方面,使本地化数据不成为先例
  • USE\u TZ=False

  • <>但是,请考虑这样的事实:默认情况下,这些更改将应用于<强> >所有< /强>日期时间对象。

    < P>我想您将不得不使用IsFasMaT。看看这个答案:


    我想你必须使用isoformat。看看这个答案:


    您可以覆盖
    DateTimeField
    value\u to\u string
    方法,并在其中添加更改。例如:

    class CustomDateTimeField(models.DateTimeField):
        def value_to_string(self, obj):
            val = self.value_from_object(obj)
            if val:
                val.replace(microsecond=0)
                return val.isoformat()
            return ''
    
    并在模型中使用它:

     created = CustomDateTimeField(auto_now_add=True)
    

    您可以覆盖
    DateTimeField
    value\u to\u string
    方法,并在其中添加更改。例如:

    class CustomDateTimeField(models.DateTimeField):
        def value_to_string(self, obj):
            val = self.value_from_object(obj)
            if val:
                val.replace(microsecond=0)
                return val.isoformat()
            return ''
    
    并在模型中使用它:

     created = CustomDateTimeField(auto_now_add=True)
    

    这里的关键是我想保留时区。但你们的答案只包含日期和时间关键是我想保留时区。但你的答案只包含日期和时间