ホームページ >バックエンド開発 >Python チュートリアル >タイムゾーン オフセットを含むタイムスタンプを Python 日時オブジェクトに変換する方法
形式 "YYYY-MM-DDTHH:MM:SS-hh:mm" から日時オブジェクトへのタイムスタンプの変換Python で strptime メソッドを使用するのは、時間オフセットが原因で困難になる場合があります
この例では、strptime は、「%Y-%m-%dT%H:%M:%S-%z」を使用したオフセット「-07:00」のタイムスタンプの解析に失敗します。 」形式。これは、strptime が Python 2 のタイムゾーンの '%z' ディレクティブをネイティブにサポートしていないためです。
回避策オプション:
1。タイムゾーンを無視する:
タイムゾーン情報が重要でない場合は、文字列をオフセットまで解析することで無視できます:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
2。 dateutil モジュールを使用します:
代わりに、dateutil モジュールはタイムゾーンをサポートするより堅牢な解析関数を提供します:
from dateutil.parser import parse time_obj = parse(time_str)
Python 3 サポート:
Python 3.2 以降では、タイムゾーン処理のサポートが改善されました。オフセットから最後の「:」を削除し、「-」を「」に置き換えます:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
これにより、タイムスタンプが正しく解析され、指定されたタイムゾーン オフセットを持つ datetime オブジェクトが作成されます。
以上がタイムゾーン オフセットを含むタイムスタンプを Python 日時オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。