首页 > 解决方案 > 在 Django 中格式化 DateTimeField

问题描述

DateTimeField使用auto_now_add这种方式在 Django 中保存时间戳时:

creation_timestamp = models.DateTimeField(auto_now_add=True)

该字段以毫秒为单位保存:

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_now_add允许做这种事情吗?

标签: pythondjangodjango-models

解决方案


如果要在显示时对其进行格式化,可以使用:creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")

您也可以将DateTimeField其保存为该格式,但这将要求进行一组将在系统范围内应用的更改:

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

  1. DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
  2. L10N=False在日期格式方面,制作本地化数据并没有先例。
  3. USE_TZ=False

但是,请考虑这样一个事实,即默认情况下,此更改将应用​​于项目中的所有日期时间对象。


推荐阅读