
Pythonで日付文字列をDateTime型に変換する方法:初心者向け完全ガイド
Pythonで日付や時刻を扱うことはよくあります。この記事では、yyyy-mm-dd
形式の文字列をDateTimeオブジェクトに変換する複数の方法を分かりやすく解説します。
扱う内容:
strptime()、dateutil.parser.parse()、datetime.strptime()などのPythonのメソッドを使用して、文字列をDateTime型に変換する方法。
なぜ文字列をDateTime型に変換する必要があるのか?
日付を比較したり、日付の計算を行ったり、日付に基づいてデータをフィルタリングしたりするには、文字列をDateTime型に変換する必要があります。Pythonでは、DateTime型に変換することで、これらの操作が簡単に行えるようになります。
変換方法1:strptime()メソッドの利用
strptime()
は、datetime
モジュールに含まれる関数で、指定されたフォーマットに基づいて文字列をDateTimeオブジェクトに変換します。
ステップ:
datetime
モジュールをインポートします。strptime()
関数を使用し、入力文字列とフォーマットを指定します。
import datetime
input_string = '2023/05/25'
format_string = '%Y/%m/%d'
datetime_object = datetime.datetime.strptime(input_string, format_string)
print(datetime_object.date())
この例では、'%Y/%m/%d'
は、年(4桁)、月、日を表すフォーマットコードです。
変換方法2:dateutil.parser.parse()メソッドの利用
dateutil
ライブラリのparse()
関数は、より柔軟な方法で文字列をDateTimeオブジェクトに変換します。
手順:
dateutil
ライブラリをインストールします。(pip install python-dateutil
)parse()
関数をインポートして使用します。
from dateutil.parser import parse
date_string = '2023-07-25'
result_datetime = parse(date_string)
print(result_datetime)
この方法は、さまざまな日付形式に対応できるため、便利です。
変換方法3:datetime.strptime() でリストを処理する
複数の日付文字列をDateTimeオブジェクトのリストに変換する場合、datetime.strptime()
をループ内で使用します。
import datetime
date_list = ['2021/05/25', '2020/05/25', '2019/02/15', '1999/02/4']
format_string = '%Y/%m/%d'
for date_string in date_list:
datetime_object = datetime.datetime.strptime(date_string, format_string)
print(datetime_object.date())
この例では、リスト内の各文字列が、指定されたフォーマットに従ってDateTimeオブジェクトに変換されます。
strptime()のエラーシューティング
strptime()
は、入力文字列が指定されたフォーマットと一致しない場合にValueError
を発生させます。
エラー処理例:
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("エラー:", e)
try-except
ブロックを使用することで、エラーを適切に処理し、プログラムがクラッシュするのを防ぐことができます。
まとめ
Pythonで日付を表す文字列をDateTime型に変換する方法はいくつかあります。strptime()
、dateutil.parser.parse()
、datetime.strptime()
などのメソッドを理解し、適切に使用することで、日付関連のタスクを効率的に処理できます。エラー処理を実装することで、予期しない入力による問題を回避できます。DateTime型への変換は、日付の操作や分析を行う上で不可欠なステップです。