Python では、strptime() メソッドは、タイムスタンプ文字列を datetime オブジェクトに変換するための実行可能なオプションとして機能します。ただし、時間オフセットを処理しようとしたときにエラーが発生すると、イライラすることがよくあります。この記事は、この特定の問題に光を当て、実行可能な解決策を提供することを目的としています。
時間オフセットを含むタイムスタンプを扱う場合、strptime() の形式文字列内で %z を使用すると、必ずしも望ましい結果が得られるとは限りません。これは、基礎となる time.strptime() 関数がこの特定の形式のコードをサポートしていないことが原因です。この課題を克服するには、別のアプローチを検討することを検討してください。
解析中にタイムゾーンを無視する:
タイムゾーン情報がアプリケーションにとって重要でない場合は、タイムスタンプを解析します。オフセットを考慮せずに string を使用するのは簡単な解決策です。これを実現するには、strptime() を呼び出す前に時刻文字列を切り詰めてオフセットを削除します:
time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
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 サイトの他の関連記事を参照してください。