ホームページ >バックエンド開発 >Python チュートリアル >Python の「dateutil.parser.isoparse」は、さまざまな ISO 8601 の日付と時刻の形式をどのように効率的に処理できるのでしょうか?

Python の「dateutil.parser.isoparse」は、さまざまな ISO 8601 の日付と時刻の形式をどのように効率的に処理できるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 13:50:40701ブラウズ

How can Python's `dateutil.parser.isoparse` efficiently handle various ISO 8601 date and time formats?

Python の dateutil.parser.isoparse を使用した ISO 8601 の日付と時刻の解析

ISO 8601 の日付と時刻の文字列を Python の datetime 型に解析するには、次のようにします。特に Python 標準ライブラリの strptime を使用する場合は困難です。

解決策: python-dateutil の isoparse 関数を使用する

python-dateutil パッケージは、dateutil.parser.isoparse 関数を使用した便利なソリューションを提供します。 Isoparse は、次のようなさまざまな ISO 8601 形式の処理に優れています。

  • RFC 3339 日時文字列 (例: "2008-09-03T20:56:35.450686Z")
  • 拡張 ISO 8601 形式(例えば。、 "2008-09-03T20:56:35.450686")
  • 基本 ISO 8601 形式 (例: "20080903T205635.450686")
  • 日付のみの形式 (例: "20080903")

さまざまな ISO 8601 形式の解析を示す例:

import dateutil.parser

iso_datetime = "2008-09-03T20:56:35.450686Z"
print(dateutil.parser.isoparse(iso_datetime))  # datetime with UTC timezone

iso_extended = "2008-09-03T20:56:35.450686"
print(dateutil.parser.isoparse(iso_extended))  # datetime without timezone

iso_basic = "20080903T205635.450686"
print(dateutil.parser.isoparse(iso_basic))  # datetime without timezone

iso_date = "20080903"
print(dateutil.parser.isoparse(iso_date))  # date

追加メモ

python-dateutil もdateutil.parser.parse を提供し、無効な ISO を解釈しようとします。 8601弦。ただし、より厳密な解析を行うには、正規表現や専用の ISO 8601 パーサーなどの他のオプションを検討してください。

Python 3.7 では、ISO 8601 文字列のサブセットを解析する datetime.datetime.fromisoformat が導入されました。 Python 3.11 では、ほぼすべての有効な ISO 8601 形式がサポートされています。ただし、柔軟性と特定のエッジケースの解釈の点で、依然として isoparse とは異なる場合があります。

以上がPython の「dateutil.parser.isoparse」は、さまざまな ISO 8601 の日付と時刻の形式をどのように効率的に処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。