Python 如何在django中获得时区的正确日期时间
我的设置文件中有这个 使用_TZ=True 现在我的时区是欧洲/巴黎 现在我把datetime保存在django,就像这样 obj.start_date=datetime.strtime'Apr 27 2015 9:00AM','%b%d%Y%I:%M%p' 我知道django在数据库中保存utc格式。以DB为例 2015-04-26 23:00:00+00 我的问题是我是根据日期计算的 我输入了日期4月27日,但在数据库中它被存储为4月26日 当我做obj.start_date.date时,我得到的是4月26日,而不是4月27日 时间也不一样 我的计算全错了 我需要使用什么命令来获取正确的日期和时间看看,在使用datetime库时,它使用aware datetime对象而不是naive对象。文档中有许多示例,说明如何利用时区转换为视图和模板中所需的时区Python 如何在django中获得时区的正确日期时间,python,django,postgresql,date,datetime,Python,Django,Postgresql,Date,Datetime,我的设置文件中有这个 使用_TZ=True 现在我的时区是欧洲/巴黎 现在我把datetime保存在django,就像这样 obj.start_date=datetime.strtime'Apr 27 2015 9:00AM','%b%d%Y%I:%M%p' 我知道django在数据库中保存utc格式。以DB为例 2015-04-26 23:00:00+00 我的问题是我是根据日期计算的 我输入了日期4月27日,但在数据库中它被存储为4月26日 当我做obj.start_date.date时,我
还可以看看Django建议您也安装的库。问题是,在创建datetime对象时,您没有提供有关其时区的任何信息。因此,它被创建为原始日期时间,这会导致存储错误的值 试试这个:
from pytz import timezone
from datetime import datetime
tz_france = timezone('Europe/Paris')
loc_dt = tz_france.localize(datetime.strptime('Apr 27 2015 9:00AM', '%b %d %Y %I:%M%p'))
它应该为您提供本地化的datetime对象,Django可以将其正确转换为UTC并保存在数据库中。这个例子来自谢谢你,我已经读了很多遍了,但还不能完全理解。如果我必须使用workuse isdst=None来为不明确或不存在的时间引发异常,您能告诉我我的代码会是什么样子吗