【问题标题】:Django - ORM - datetime field different formatsDjango - ORM - 日期时间字段不同格式
【发布时间】:2019-11-20 06:53:58
【问题描述】:

我目前正在开发一个 Django 应用程序,其中每个 DateTimeField 都应该具有完全相同的格式...首先,这是我的抽象模型:

from django.db import models

class AbstractModel(models.Model):

    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

createdupdated 字段格式相同,如下所示:

2019-01-01 12:12:12.123456+00 # right

但是:当我将其他一些 DateTimeField 添加到任何模型时,例如:

some_other_field = models.DateTimeField()

并通过 django-admin 保存,它在数据库中得到这种格式:

2019-01-01 12:12:12+00 # wrong

为什么?!现在我的数据库中有两种不同的 DateTimeField 格式,这在概念上非常糟糕..

谁能帮帮我?我只想在每个日期时间字段中使用一种格式(上面的格式)..

设置:

LANGUAGE_CODE = 'en-US'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

【问题讨论】:

  • 您使用的是哪个数据库?我怀疑您想查看值 2019-01-01 12:12:12.000000+00

标签: django date datetime model format


【解决方案1】:

我认为您应该为自定义日期时间字段使用默认值:

some_other_field = models.DateTimeField()

并选择默认格式值,例如 createdupdated 字段:

[
    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
    '%Y-%m-%d %H:%M:%S.%f',  # '2006-10-25 14:30:59.000200'
    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
    '%Y-%m-%d',              # '2006-10-25'
    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
    '%m/%d/%Y %H:%M:%S.%f',  # '10/25/2006 14:30:59.000200'
    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
    '%m/%d/%Y',              # '10/25/2006'
    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
    '%m/%d/%y %H:%M:%S.%f',  # '10/25/06 14:30:59.000200'
    '%m/%d/%y %H:%M',        # '10/25/06 14:30'
    '%m/%d/%y',              # '10/25/06'
]

在日期时间字段上输入数据时将接受的格式列表。 你可以阅读更多django datetime format document.

【讨论】:

  • 好吧.. 但是我在哪里指定全局格式?.. 因为 settings.py 中的 DATETIME_FORMAT 没有区别..
猜你喜欢
  • 2016-01-22
  • 2015-12-19
  • 1970-01-01
  • 2012-05-29
  • 2022-01-23
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多