「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 以降の場合、タイムゾーンのサポートが強化されました。 %z は、フォーマット文字列を次のように調整した後に機能します:
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
以上がPython でタイムゾーン オフセットを含むタイムスタンプを DateTime オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。