首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将"tzinfo“替换为本地时间,修改6分钟。

将"tzinfo“替换为本地时间,修改6分钟。
EN

Stack Overflow用户
提问于 2016-09-28 23:16:13
回答 1查看 2.7K关注 0票数 3

我正在创建一个没有时区的DataTimeField。很快,我将编辑这个TZ“手动”,然后要求读取本地TZ的值。看最后结果修正了六分钟!

逻辑:

代码语言:javascript
运行
复制
>>> import datetime
>>> from django.utils import timezone
>>> test = datetime.datetime(2016, 9, 28, 10, 10, 10)
datetime.datetime(2016, 9, 28, 10, 10, 10)

>>> test = teste.replace(tzinfo=pytz.timezone('America/Sao_Paulo'))
datetime.datetime(2016, 9, 28, 10, 10, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' LMT-1 day, 20:54:00 STD>)

>>> timezone.activate(pytz.timezone('America/Sao_Paulo'))
>>> timezone.localtime(test)
datetime.datetime(2016, 9, 28, 10, 16, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRT-1 day, 21:00:00 STD>)

注意:这个想法是分两个阶段进行的。首先,我想继续做TimeZone创建的替补席。然后,我想用用户的TimeZone向用户显示。在这种情况下,两个用户都是同一个区域。

对不起,我的英语

在@ from 6897474的响应并付诸实施之后,我得到了以下解决方案:

在保存之前,我将获得POST和serializabel文件的日期,请执行以下操作:

代码语言:javascript
运行
复制
class CheckControllerSerializer(serializers.ModelSerializer):
    def create(self, validated_data):
        datetime = validated_data['datetime'].replace(tzinfo=None)
        validated_data['datetime'] = pytz.timezone('America/Sao_Paulo').localize(datetime)

        return super(CheckControllerSerializer, self).create(validated_data)

替换tzinfo = None,我保证您不会遇到以下错误:

不是天真的日期时间( already已经设置)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 06:11:25

使用timezone.localize而不是datetime.replace

代码语言:javascript
运行
复制
>>> test = datetime.datetime(2016, 9, 28, 10, 10, 10)
>>> test = pytz.timezone('America/Sao_Paulo').localize(test)
datetime.datetime(2016, 9, 28, 10, 10, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRT-1 day, 21:00:00 STD>)

>>> timezone.activate(pytz.timezone('America/Sao_Paulo'))
>>> timezone.localtime(test)
datetime.datetime(2016, 9, 28, 10, 10, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRT-1 day, 21:00:00 STD>)

参考资料:

  1. pytz.localize对datetime.replace
  2. 当呈现到Django模板时,datetime对象总是被关闭6分钟。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39759041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档