世界中のさまざまな場所にいる人々にサービスを提供するアプリを開発しています。
私はクライアントとサーバー間の通信にDjango-Rest-Framworkを使用しています。
すべてのDateTime値は、UTCとしてDBに保存されています(settings.pyにはUSE_TZ = True
とTIME_ZONE = 'Greenwich'
があります)。Django-rest-frameworkタイムゾーン対応レンダラー/パーサー
私は自分のローカルタイムゾーンから取得します。問題がある
import pytz
from django.utils import timezone
class TimezoneMiddleware(object):
def process_request(self, request):
timezone.activate(pytz.timezone("Asia/Jerusalem"))
:
私は一定の時間帯で、このミドルウェアを書いたタイムゾーンの認識のためのテスト DRF に私は、ユーザー「のstart_time」から取得していた場合を持って
と「end_time」フィールドには、ユーザーのLOCALのタイムゾーンが含まれ、UnicodeJSONRenderer
からModelSerializer
に移動し、DBに保存されます。ただし、それらはUTCのように保存されます。
timezone.activate(pytz.timezone("Asia/Jerusalem"))
を実行して以来、シリアライザ(またはパーサー)はdatetimeをユーザーに入力してDBに保存する前に、「アジア/エルサレム」からUTCに変換する必要があります。
JSONParser
によってデータが応答で解析された場合も同様です。
返されたJSONのDateTimeフィールドがミドルウェアでアクティブになっているタイムゾーンにあると予想されている間は、UTCとして返されます。
どうすればDRFで簡単に達成できますか?
あなたが見つけますか溶液? – yakxxx
@yakxxx - 残念ながらまだありません。今のところ、私はGMTのdatetime値を取得して返し、ローカルタイムゾーンへの変換はクライアントの側で行われます。 – OrPo
リクエストを投稿できますか?私はあなたがJSONの中でどのフォーマットを使用したのだろうか?タイムゾーン対応のISO 8601文字列を使用していますか? – codingjoe