ホームページ > バックエンド開発 > Python チュートリアル > Python でタイムゾーン オフセットを含むタイムスタンプを DateTime オブジェクトに変換する方法

Python でタイムゾーン オフセットを含むタイムスタンプを DateTime オブジェクトに変換する方法

Barbara Streisand
リリース: 2024-11-29 19:37:11
オリジナル
1039 人が閲覧しました

How to Convert Timestamps with Timezone Offsets to DateTime Objects in Python?

strptime を使用してオフセット付きタイムスタンプを日時オブジェクトに変換する

問題

「2012-07-24T23:14:29-」形式のタイムスタンプを変換するstrptime() を使用して 07:00" を datetime オブジェクトに変換する終了時の時間オフセット (-07:00) が原因で問題が発生する可能性があります。オフセットを使用しない場合、次のように strptime() を使用できます:

time_str = "2012-07-24T23:14:29"
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S')
ログイン後にコピー

ただし、指定された時間オフセットを使用すると、「z」ディレクティブがサポートされていないため、ValueError が発生します。

回避策

主に 2 つの方法があります回避策:

1. strptime() を使用してタイムゾーンを無視します:

解析する前にタイムスタンプからタイムゾーン部分を削除します:

time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
ログイン後にコピー

2. dateutil.parser を使用します:

dateutil モジュールはタイムゾーンをサポートする解析関数を提供します:

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

Python 3.2 以降

Python バージョン 3.2 以降の場合、タイムゾーンのサポートが強化されました。 %z は、フォーマット文字列を次のように調整した後に機能します:

  • フォーマット文字列から最後のコロンを削除します。
  • %z 指定子の前の '-' を削除します。
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
ログイン後にコピー

以上がPython でタイムゾーン オフセットを含むタイムスタンプを DateTime オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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