Python 将新的日期时间格式添加到django格式列表中
我在Python 将新的日期时间格式添加到django格式列表中,python,django,datetime,timezone,Python,Django,Datetime,Timezone,我在settings.py中使用Django格式来跟踪所有日期时间格式,以便它们保持一致。我的设置文件中有多种格式,例如: 设置.py USE_L10N = False # False = Use own formats below. DATETIME_FORMAT = "d M Y, H:i" DATE_FORMAT = "j M Y" TIME_FORMAT = "H:i:s" SHORT_DATETIME_FORMAT = "Y\u2011m\u2011d H:i:s" SHORT_DAT
settings.py
中使用Django格式来跟踪所有日期时间格式,以便它们保持一致。我的设置文件中有多种格式,例如:
设置.py
USE_L10N = False # False = Use own formats below.
DATETIME_FORMAT = "d M Y, H:i"
DATE_FORMAT = "j M Y"
TIME_FORMAT = "H:i:s"
SHORT_DATETIME_FORMAT = "Y\u2011m\u2011d H:i:s"
SHORT_DATE_FORMAT = "Y\u2011m\u2011d"
MONTH_DAY_FORMAT = "n M"
YEAR_MONTH_FORMAT = "Y M"
然后使用它们:
from django.utils import formats, timnezone
formats.date_format(timezone.now(), 'SHORT_DATETIME_FORMAT')
有几次我希望添加另一种格式,例如,在文件名中使用日期时间需要不同的格式(在这种情况下,我可以执行替换,但这只是一个示例):
关于上述内容:
*注1:如果放置在settings.py中,则不起作用
与此密切相关,但这个问题只是定义了一个定制格式,这不是我想要的。我想使用django的格式系统,这样就有了一个真相的来源
问题摘要:如何将新的日期时间格式添加到django格式列表中(而不是其他解决方法)。在思考这个问题时,我想到了这个“黑客”,希望有更好的(官方或推荐的)方法:
settings.py
:
new_formats = {'FILE_DATETIME_FORMAT': "Y-m-d H.i.s", }
# Union of new_formats with the existing ones
formats.FORMAT_SETTINGS = frozenset(formats.FORMAT_SETTINGS | new_formats.keys())
for setting, value in new_formats.items():
globals()[setting] = value
new_formats = {'FILE_DATETIME_FORMAT': "Y-m-d H.i.s", }
# Union of new_formats with the existing ones
formats.FORMAT_SETTINGS = frozenset(formats.FORMAT_SETTINGS | new_formats.keys())
for setting, value in new_formats.items():
globals()[setting] = value