我正在做Python/Django项目。我试图让用户使用jQuery插件datetimepicker add-on选择日期和时间。所以当我选择now选项和post data时,django正在以UTC偏移量节省时间。这是保存在数据库2017-03-30 13:38:00+00:00
中的内容。我需要把这个时间从用户的时区转换成utc格式保存在系统中。因为稍后我将运行脚本,在数据库中查找小于utc时间的数据。在
实际上,这个脚本是让用户在网站上发布信息,让他们选择发布日期和时间。例如,如果use发布了一篇将在芝加哥时间4月2日下午1点发表的文章,我不希望其他用户在这之前阅读这篇文章。所以全世界的人都可以在芝加哥4月2日下午1点阅读这篇文章。那么我如何才能使这个功能发挥作用呢?在
我的解决方案是使用replace(tzinfo=pytz.timezone('America/Chicago'))
获取时间并删除它的时区信息,当我打印时间时,我得到2017-03-30 13:38:00-05:51
。现在的实际偏移量是-05:00
。谁能帮我告诉我我做错了什么吗?在
我对form所做的是在我的模型中有publish_date
对象,并使用django表单来创建表单。我在其中添加了class作为属性,并使用jquery插件
$('.datepicker').datetimepicker({
timeFormat: 'HH:mm',
stepHour: 1,
stepMinute: 1,
});
所以当用户提交表单时,在post方法上这是我的代码
^{pr2}$而不是获取日期,我所做的就是f.publish_date
,我使用的其他选项replace
和{
谢谢
正如评论中提到的,你似乎有两个问题。{cd1>第一次应用时区偏移量时,应该是完全不同的时区偏移量。第二个问题是
pytz
使用了错误的偏移量。在我不知道如何解决第一个问题,但我可以帮你解决第二个问题。您需要使用pytz's ^{} 函数。这只在
datetime
没有连接时区时有效,但是既然您知道时区不正确,您可以先删除它。在datetime
replace(tzinfo = ...)
函数的命名是不幸的。事实上,它的行为是随机的。不要用这个!在马克的答案是该走的路。使用本地化。在
相关问题 更多 >
编程相关推荐