Django DATETIME_FORMAT 特定日期不正确(一年)
Django DATETIME_FORMAT incorrect (by one year) for specific dates
对于客户端,我将事件日志存储在 postgres 数据库中。每个事件都有一个日期,在 postgres 中存储为带时区的时间戳。使用模型定义中 Djangos 内置的 auto_now_add
属性自动填充日期。
在 settings.py 中,我设置了以下内容:
TIME_ZONE = 'UTC'
USE_TZ = True
DATETIME_FORMAT = 'd/m/o H:i:s'
DATE_FORMAT = 'd/m/o'
TIME_FORMAT = 'H:i:s'
SHORT_DATE_FORMAT = 'd/m/o'
SHORT_DATETIME_FORMAT = 'd/m/o H:i'
我对这种机制有很多经验,直到现在它才出现问题。客户实际上指出有许多条目的日期在未来(事件日志不可能)。
在检查了前端和管理员之后,我可以验证是否存在无效日期,例如(30/12/2020 和 31/12/2020)出现(所有无效日期都在此范围内,其他日期之前和之后都正确显示)。当我检查数据库 (Postgres) 时,我可以验证存储的日期实际上都在 2019 年,具有以下时间戳值:2019-12-30 10:23:07.451674+00
和 2019-12-31 08:12:26.635693+00
.
前端使用的模板使用{{ log_item.date }}
显示日期。
我错过了什么?任何提示表示赞赏。
使用 DATE_FORMAT = 'd/m/Y'
而不是 DATE_FORMAT = 'd/m/o'
。当您对年份使用 o
格式时,它是 return 周编号年份。由于 12 月 30 日和 31 日是 2020 年的第一周,它给你 2020 年。
对于客户端,我将事件日志存储在 postgres 数据库中。每个事件都有一个日期,在 postgres 中存储为带时区的时间戳。使用模型定义中 Djangos 内置的 auto_now_add
属性自动填充日期。
在 settings.py 中,我设置了以下内容:
TIME_ZONE = 'UTC'
USE_TZ = True
DATETIME_FORMAT = 'd/m/o H:i:s'
DATE_FORMAT = 'd/m/o'
TIME_FORMAT = 'H:i:s'
SHORT_DATE_FORMAT = 'd/m/o'
SHORT_DATETIME_FORMAT = 'd/m/o H:i'
我对这种机制有很多经验,直到现在它才出现问题。客户实际上指出有许多条目的日期在未来(事件日志不可能)。
在检查了前端和管理员之后,我可以验证是否存在无效日期,例如(30/12/2020 和 31/12/2020)出现(所有无效日期都在此范围内,其他日期之前和之后都正确显示)。当我检查数据库 (Postgres) 时,我可以验证存储的日期实际上都在 2019 年,具有以下时间戳值:2019-12-30 10:23:07.451674+00
和 2019-12-31 08:12:26.635693+00
.
前端使用的模板使用{{ log_item.date }}
显示日期。
我错过了什么?任何提示表示赞赏。
使用 DATE_FORMAT = 'd/m/Y'
而不是 DATE_FORMAT = 'd/m/o'
。当您对年份使用 o
格式时,它是 return 周编号年份。由于 12 月 30 日和 31 日是 2020 年的第一周,它给你 2020 年。