DataTimeField no time zoneを作成しています。まもなく私はこのTZを「手動で」編集してから、ローカルのTZで値を読み取ろうとしています。最終結果が6分を補正するのを見てください!"tzinfo"を置き換え、localtimeで補正します。6分補正します。
ロジック:
>>> 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を使用してユーザーに表示します。この場合、両方のユーザーは同じ地域でした。
申し訳ありません私の英語
@ user6897474からの応答に続いて、実際に入れて、私はこのソリューションを得た:
私は保存する前に、POSTのための日時及びserializabelファイルを取得しています、行います以下ません:
:tzinfoのを交換して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)
=なし、私はあなたが次のエラーに問題がないことを保証します
Not naive datetime (tzinfo is already set)
優秀、ありがとうございました。ちょうど最後の質問:タイムゾーンを設定することは、何かグローバルな要求ですか、制限されていますか? (私はそれが第2の選択であることを願っています) –
ステートレスでなければなりません。 – Francis