この記事では、Pythonにおける日付や時刻の文字列をdatetime
オブジェクトに変換する方法と、逆にdatetime
オブジェクトを文字列に変換する方法を解説します。
日付や時刻の扱い方について理解を深めましょう。
文字列からdatetimeに変換する方法
文字列の日付フォーマットとは
Pythonにおいて、日付や時刻を表す文字列は特定のフォーマットに従っている必要があります。
例えば、2022-10-15
や10/15/2022
などが一般的な日付の表現です。
日付フォーマットは年、月、日の順番や区切り文字などが決まっています。
date_str = "2022-10-15"
strptime()メソッドを使った変換方法
Pythonのdatetime
モジュールには、文字列をdatetimeオブジェクトに変換するためのstrptime()メソッドが用意されています。
このメソッドを使用すると、指定したフォーマットに従った文字列をdatetime
オブジェクトに変換することができます。
from datetime import datetime
date_str = "2022-10-15"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print(date_obj)
2022-10-15 00:00:00
dateutilパッケージを使った変換方法
dateutil
パッケージを使用すると、日付文字列のフォーマットを指定せずに自動的に解釈してdatetime
オブジェクトに変換することができます。
このパッケージを使用すると、日付文字列のフォーマットが複数ある場合や特定のフォーマットに合わない場合でも柔軟に対応できます。
from dateutil import parser
date_str = "2022-10-15"
date_obj = parser.parse(date_str)
print(date_obj)
2022-10-15 00:00:00
datetimeオブジェクトから文字列に変換する方法
strftime()メソッドを使った変換方法
Pythonのdatetimeオブジェクト
を文字列に変換する際には、strftime()メソッドを使用します。
strftime()メソッドは、指定したフォーマットに従ってdatetimeオブジェクト
を文字列に変換します。
以下に、具体的なサンプルコードを示します。
import datetime
# 現在の日時を取得
now = datetime.datetime.now()
# 日時を指定したフォーマットの文字列に変換
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)
2024-02-14 07:00:28
上記のコードでは、現在の日時を取得し、%Y-%m-%d %H:%M:%S
というフォーマットに従って文字列に変換しています。
このように、strftime()メソッドを使用することで、datetimeオブジェクト
を任意のフォーマットの文字列に変換することができます。
isoformat()メソッドを使った変換方法
isoformat()
メソッドは、ISO 8601形式の文字列にdatetimeオブジェクトを変換するためのメソッドです。
ISO 8601形式は日付と時刻を表現するための国際標準形式であり、様々なシステムで利用されています。
以下に、isoformat()
メソッドを使用したサンプルコードを示します。
import datetime
# 現在の日時を取得
now = datetime.datetime.now()
# ISO 8601形式の文字列に変換
iso_date = now.isoformat()
print(iso_date)
2024-02-14T07:00:32.847411
上記のコードでは、現在の日時を取得し、isoformat()
メソッドを使ってISO 8601形式の文字列に変換しています。
isoformat()メソッドを使用することで、datetimeオブジェクト
を標準化された形式の文字列に変換することができます。