【发布时间】:2014-01-02 17:26:21
【问题描述】:
在一个 Django 项目中,我在数据库中存储了一个日期时间字段。 我从网页获取日期字符串,并使用 datetime.strptime() 转换为 datetime 类型,并将其分配给 DatetimeField。但是当我获取字段并使用strftime获取字符串时,已经休息了一天,为什么会出现这种情况?
datestr = "2013-12-12";
expireDate = datetime.strptime(datestr, "%Y-%m-%d");
datamodel.time = expireDate;
datamodel.save();
# when I get the model in another method
expireDate = datamodel.time;
datestr = expireDate.strftime("%Y-%m-%d"); # I get "2013-12-11"
我认为这可能与时区有关,但不知道如何解决。请帮忙!
【问题讨论】:
-
expireDate = datamodel.timeprint expireDate的值是多少? -
您的设置文件中的时区是什么?
-
您是否使用时区支持?
-
启用时区时通常建议安装pytz。试试看?
-
我正在使用 django 时区支持。当我从模型中打印 expireDate 时,我得到:datetime.datetime(2013, 12, 11, 16, 0, tzinfo=
)。我在 settings.py 中的时区设置是 TIME_ZONE = 'Asia/Shanghai'。
标签: python django datetime timezone