我正在使用一个通过我无法保证的时间/日期字段的API,其中始终在其中包含时区信息。
从他们的文档中,这可能是:
Empty String,
YYYY-MM-DD,
YYYY-MM-DDTHH:MM:SS, or
YYYY-MM-DDTHH:MM:SS+TIMEZONE
当我尝试将该字段保存到数据库中时,如果数据出现在没有时区信息的情况下,则会生成此错误。我要保存此值的字段在其模型中定义为:
my_timedate_field = models.DateTimeField()
至少我想抑制每次保存的记录产生的警告。我可以做些什么来使它变得更干净?
编辑:警告是:
RuntimeWarning: DateTimeField my_timedate_field received a naive datetime while time zone support is active. RuntimeWarning)
每次我处理API调用时,这些警告都会显示在我的日志中 - 有时每个API调用5-10次,鉴于元素的显示方式。
我弄清楚了。
事实证明 - 假设我不能指望时区信息始终是从传入API传递的字符串的一部分 - 这是我能做的最好的。
使用Django模型声明:
api_time = models.DateTimeField()
发送的时间值不包含时区信息仍然可以存储在该字段中。发生警告是为了让您知道您正在将非时区域保存在时区感知数据库字段中。
再次 - 这是警告:
RuntimeWarning: DateTimeField api_time received a naive datetime
(2018-08-03 09:04:25) while time zone support is active.