datetime
にはタイムゾーン情報がありません。私は現在、タイムゾーン情報を取得していて、存在するdatetimeインスタンスにタイムゾーンを追加したいのですが、どうすればいいですか?インスタンスをローカライズするために使用tz.localize(d)
日時にa
Pythonの素朴なdatetimeインスタンスにタイムゾーンを追加するには
答えて
をタイムゾーン情報tz
を追加する方法
d = datetime.datetime.now()
tz = pytz.timezone('Asia/Taipei')
最初に、pytzライブラリによって提供されるlocalize()メソッドを使用します。これは、(なしタイムゾーン情報と日時)ナイーブ日時をローカライズするために使用されています。あなたがいない使用
tz.localize()
を行う場合>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0)) >>> print(loc_dt.strftime(fmt)) 2002-10-27 06:00:00 EST-0500
が、datetime.replace()
を使用し、チャンスはオフセット歴史が代わりに使用されていることです; tz.localize()
は、指定された日付に有効な正しいオフセットを選択します。たとえば、米国東部標準時のDSTの開始日と終了日が時間とともに変化しています。
夏時間から冬時間またはその逆の遷移期間に跨っているためにあいまいなdatetime値をローカライズしようとすると、結果として得られるdatetimeオブジェクトに.dst()
がTrueまたはFalseを返すかどうかを確認するためにタイムゾーンを調べます。
dt = tz.localize(naive, is_dst=True)
あるいはis_dst=None
を設定することにより、完全な選択をオフに:あなたは.localize()
ためis_dst
キーワード引数とタイムゾーンのデフォルトを上書きすることができます。その場合、まれに、がで、タイムゾーンにデフォルトが設定されていないと、あいまいな日時値によってAmbiguousTimeError
例外が発生します。 is_dst
フラグは、あいまいなdatetime値に対してのみ参照され、それ以外の場合は無視されます。
は、他の道を戻ってナイーブオブジェクトに戻ってタイムゾーンを意識したオブジェクトを有効にするには、使用.replace(tzinfo=None)
:
naivedt = awaredt.replace(tzinfo=None)
あなたは、元の日時はあなたが時間帯に「測定」であったことがわかっている場合それに追加しようとすると、localize
ではなくreplace
を使用することができます(ただし、おそらくそうはなりません)。お使いのサーバーのロケールが正しくないタイムゾーンに設定されていて、datetime
を修正しようとしている
- :
# d = datetime.datetime.now() # tz = pytz.timezone('Asia/Taipei') d = d.replace(tzinfo=tz)
私は、これは意味をなさない可能性がある2回(1秒が私に起こった)想像することができますこの誤ったタイムゾーンを認識させることで、おそらく "正しい"タイムゾーンにローカライズしてnow()の値が他の時刻と一致するようにする(
)
- 「タグ」に
time
インスタンス(NOT adatetime
)とtime zone(tzinfo)属性を使用して、属性を後でフルdatetime
インスタンスを形成するために使用できるようにします。
- 1. タイムゾーン形式のファイルをPythonの素朴なdatetimeオブジェクトに渡す方法
- 2. Pythonはtzinfoをpytzなしで素朴なdatetimeにします
- 3. Pythonでdatetime値に秒を追加するには?
- 4. Pythonで素朴なグラデーションディセントを実装する
- 5. pythonは異なるタイムゾーンでdatetimeを比較します
- 6. DateTimeのプロパティでタイムゾーンが追加される理由
- 7. Pythonの素朴なベイを使ったテキストの分類
- 8. パンダのデータフレームにタイムゾーンを追加する
- 9. pythonジェネレータに要素を追加する
- 10. python datetimeに時間の配列を追加する
- 11. jquery-ui datepickerインスタンスに追加のイベントハンドラを追加するには?
- 12. タイムゾーンにタイムゾーンを追加するにはどうすればよいですか?
- 13. Pythonの文字列にset要素を追加するには
- 14. タイムゾーンのないJaxb DateTime
- 15. Pythonは複数のインスタンスに値を追加しています
- 16. mysql datetime行に日を追加する
- 17. タイムスタンプに 'Datetime'オブジェクトを追加する
- 18. timedeltaオブジェクトをdatetimeに追加する
- 19. Pythonのベースクラスにインスタンス変数を追加する
- 20. 希望するタイムゾーンでデータベースにdatetimeを挿入するには?
- 21. Symfony2のユーザログイン時にプログラムでDateTimeタイムゾーンを設定するには
- 22. PHP Datetime()異なるタイムゾーンのオフセットを0に戻す
- 23. 新しいDateTimeのは、空のDateTimeインスタンスにバグの原因を追跡
- 24. リストから要素を取り出す:おそらく非常に素朴な疑問のpython
- 25. PythonがdatetimeをUTCタイムゾーンに設定しました
- 26. オーバーライド私はmerly素朴な疑問を持っている
- 27. 、私は素朴な疑問を持っているジャンゴ
- 28. SQL ServerのDateTime - タイムゾーン
- 29. Pythonタイムゾーンを認識するdatetime文字列をutc時刻に変換する
- 30. 別のモデルにインスタンスを追加する
完璧なソリューション、ありがとう。 – waitingkuo
tzinfoを持つ 'datetime'から素朴な' datetime'を得る便利な方法はありますか? – waitingkuo
@waitingkuo: 'datetime'オブジェクトの' .replace(tzinfo = None) 'を呼び出します。戻り値は素朴な 'datetime'インスタンスです。 –