Django Admin DateTimeField 显示 24 小时格式时间
Posted
技术标签:
【中文标题】Django Admin DateTimeField 显示 24 小时格式时间【英文标题】:Django Admin DateTimeField Showing 24hr format time 【发布时间】:2018-07-08 21:55:40 【问题描述】:我在谷歌上试过,但没有找到解决方案。在Django
管理方面,我正在显示开始日期和结束日期以及时间。但时间是24 hr
格式,我想以12 hr
格式显示它
class CompanyEvent(models.Model):
title = models.CharField(max_length=255)
date_start = models.DateTimeField('Start Date')
date_end = models.DateTimeField('End Date')
notes = models.CharField(max_length=255)
class Meta:
verbose_name = u'Company Event'
verbose_name_plural = u'Company Events'
def __unicode__(self):
return "%s (%s : %s)" % (self.title, self.date_start.strftime('%m/%d/%Y'), self.date_end)
我还发现了this,但这对我没有帮助。
我是 python
和 django
的新手。请帮忙。
【问题讨论】:
我认为它会从您的计算机中捕获默认值。因此,如果您所在的地区是 24 小时制,它会这样显示。您是否尝试过更改您的区域格式? 【参考方案1】:这是 django 的设置问题,而不是模型: settings doc.
在MyProject/MySite/settings.py
中检查您的TIME_INPUT_FORMATS
并根据需要添加:
TIME_INPUT_FORMATS = [
'%I:%M:%S %p', # 6:22:44 PM
'%I:%M %p', # 6:22 PM
'%I %p', # 6 PM
'%H:%M:%S', # '14:30:59'
'%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
]
如果更改列表页面上的时间格式显示仍然错误,请检查您的LANGUAGE_CODE
和USE_L10N
设置。
【讨论】:
【参考方案2】:看看Django docs你会知道格式像 这个
'%Y-%m-%d %H:%M:%S'
其中 %H 是小时,带前导零的 24 小时格式,要获得 12 小时格式,请将其替换为 %h
所以你必须使用- '%Y-%m-%d %h:%M:%S'
【讨论】:
【参考方案3】:django 默认显示 24 小时格式,如果要自定义需要指定 12 小时格式。让我知道这是否有效
class CompanyEvent(models.Model):
title = models.CharField(max_length=255)
date_start = models.DateTimeField('Start Date')
date_end = models.DateTimeField('End Date')
notes = models.CharField(max_length=255)
class Meta:
verbose_name = u'Company Event'
verbose_name_plural = u'Company Events'
def __unicode__(self):
return "%s (%s : %s)" % (self.title, self.date_start.strftime('%m/%d/%Y %I:%M %p'), self.date_end)
【讨论】:
它适用于列表,但不是详细或编辑页面。 检查我提供的图像,该图像是编辑视图,我在 24 小时内获得时间格式。以上是关于Django Admin DateTimeField 显示 24 小时格式时间的主要内容,如果未能解决你的问题,请参考以下文章
django-admin 和django-admin.py的区别
django 配置管理后台,出现多个 admin/admin/admin