Pythonで日付文字列をdatetimeオブジェクトに変換する方法:`strptime()`、`dateutil`など
Pythonで日付と時刻を扱うのは、プログラミングでよくある作業です。この記事では、`yyyy-mm-dd`形式の文字列をdatetimeオブジェクトに変換する方法を解説します。
Pythonで日付文字列をdatetimeオブジェクトに変換する方法:strptime()
、dateutil
など
Pythonで日付と時刻を扱うのは、プログラミングでよくある作業です。この記事では、yyyy-mm-dd
形式の文字列をdatetimeオブジェクトに変換する方法を解説します。
文字列からdatetimeへの変換:主要な3つの方法
Pythonには、文字列をdatetimeオブジェクトに変換するためのいくつかの便利な方法があります。
strptime()
:datetimeモジュールに含まれる標準的な関数dateutil.parser.parse()
:より柔軟な日付文字列の解析が可能datetime.strptime()
:リスト内の全ての日付をdatetimeオブジェクトに変換
以下、それぞれの方法について詳しく見ていきましょう。
1. strptime()
による変換
strptime()
関数は、datetimeモジュールに組み込まれており、特定のフォーマットに基づいて文字列をdatetimeオブジェクトに変換します。
import datetime
date_string = '2023/10/27'
date_format = '%Y/%m/%d'
datetime_object = datetime.datetime.strptime(date_string, date_format)
print(datetime_object.date()) # 結果:2023-10-27
ここでは、%Y/%m/%d
という形式指定子を使って、年、月、日の順で日付が記述されていることをstrptime()
に伝えています。
2. dateutil.parser.parse()
による変換
dateutil
ライブラリのparse()
関数は、より柔軟な日付文字列の解析を可能にします。日付の区切り文字や形式が異なっていても、自動的に解釈してくれる場合があります。
from dateutil.parser import parse
date_string = '2023-10-27'
datetime_object = parse(date_string)
print(datetime_object) # 結果:2023-10-27 00:00:00
parse()
関数は、さまざまな日付フォーマットを推測してdatetimeオブジェクトに変換してくれます。
3. リスト内の文字列をdatetimeオブジェクトに変換
複数の日付文字列がリストに入っている場合、datetime.strptime()
をループ処理で使用して、リスト内のすべての日付をdatetimeオブジェクトに変換できます。
import datetime
date_list = ['2021/05/25', '2020/05/25', '2019/02/15', '1999/02/4']
date_format = '%Y/%m/%d'
for date_string in date_list:
datetime_object = datetime.datetime.strptime(date_string, date_format)
print(datetime_object.date())
strptime()
のエラー対応
strptime()
は、入力文字列が指定されたフォーマットと一致しない場合、ValueError
を発生させます。エラーを適切に処理するために、try-except
ブロックを使用できます。
from datetime import datetime
date_string = "2021-02-29"
date_format = "%Y-%m-%d"
try:
date_object = datetime.strptime(date_string, date_format)
print(date_object)
except ValueError as e:
print("Error:", e) # 結果: Error: day is out of range for month
まとめ
Pythonで日付文字列をdatetimeオブジェクトに変換する方法はいくつかあります。strptime()
は標準的な方法であり、dateutil.parser.parse()
はより柔軟な解析を可能にします。状況に応じて最適な方法を選択し、エラー処理を適切に実装することで、日付と時刻を安全かつ効率的に扱うことができます。datetime形式で日付を保持することは、日付間の日数を計算するなどの操作を実行する必要がある場合に非常に重要です。