ホームページ > バックエンド開発 > Python チュートリアル > Python で時間オフセットのあるタイムスタンプを Datetime オブジェクトに変換するにはどうすればよいですか?

Python で時間オフセットのあるタイムスタンプを Datetime オブジェクトに変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-26 10:03:10
オリジナル
959 人が閲覧しました

How Can I Convert Timestamps with Time Offsets to Datetime Objects in Python?

strptime を使用したオフセット付きタイムスタンプの Datetime オブジェクトへの変換

Python では、strptime() メソッドは、タイムスタンプ文字列を datetime オブジェクトに変換するための実行可能なオプションとして機能します。ただし、時間オフセットを処理しようとしたときにエラーが発生すると、イライラすることがよくあります。この記事は、この特定の問題に光を当て、実行可能な解決策を提供することを目的としています。

時間オフセットを含むタイムスタンプを扱う場合、strptime() の形式文字列内で %z を使用すると、必ずしも望ましい結果が得られるとは限りません。これは、基礎となる time.strptime() 関数がこの特定の形式のコードをサポートしていないことが原因です。この課題を克服するには、別のアプローチを検討することを検討してください。

  1. 解析中にタイムゾーンを無視する:
    タイムゾーン情報がアプリケーションにとって重要でない場合は、タイムスタンプを解析します。オフセットを考慮せずに string を使用するのは簡単な解決策です。これを実現するには、strptime() を呼び出す前に時刻文字列を切り詰めてオフセットを削除します:

    time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
    ログイン後にコピー
  2. dateutil モジュールを利用します:
    状況に応じてタイムゾーンの詳細が必要な場合は、dateutil モジュールが貴重なツールを提供します。その parse() 関数はタイムゾーンを効果的に処理し、目的の datetime オブジェクトを取得できるようにします。

    from dateutil.parser import parse
    time_obj = parse(time_str)
    ログイン後にコピー

    さらに、Python 3.2 以降を使用している場合は、最後の条件が満たされていれば、%z を strptime() で使用できます。入力内のコロンが削除され、%z の前のハイフンも削除されます削除:

    datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
    ログイン後にコピー

これらの回避策を利用すると、時間オフセットを含むタイムスタンプを Python の datetime オブジェクトに効果的に変換できます。効率を優先する場合でも、タイムゾーン情報の保存が必要な場合でも、これらのソリューションを使用すると、望ましい結果を達成できます。

以上がPython で時間オフセットのあるタイムスタンプを Datetime オブジェクトに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート