我在django中面临时间格式的一些问题。
我的模型DateTimeField正在使用auto_now存储日期时间,我正在尝试使用此datetimefield过滤数据。
我用于comapre的输入日期时间是不同的格式,如2016-1-5T5:00:00
,存储在djnago模型中的日期时间是默认的django格式,因为我使用的是auto_now
。
我得到的错误如下:
RuntimeWarning: DateTimeField MyModel.modified_at received a naive datetime (2016-01-05 05:00:00) while time zone support is active.
RuntimeWarning)
所以我想我需要将输入时间转换为django合适的格式。 知道如何比较这两个日期,以便我的查询可以过滤正确的数据。
答案 0 :(得分:0)
您是否尝试过使用时区感知日期时间? e.g。
datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=<UTC>)
你可以这样:
import pytz
timezone_aware_time = pytz.timezone('UTC').localize(datetime.datetime(2013, 11, 20, 20, 8, 7, 127325))
要将字符串转换为兼容格式,然后为其指定时区,请执行以下操作:
import datetime from datetime
datetime.strptime('2016-1-5T5:00:00', '%Y-%m-%dT%H:%M:%S')
所以,完全是:
import pytz
import datetime from datetime
timezone_aware_time = pytz.timezone('UTC').localize(datetime.strptime('2016-1-5T5:00:00', '%Y-%m-%dT%H:%M:%S'))
作为参考,auto_now是时区UTC。