【Python】文字列の日付をdatetimeに変換する方法

この記事では、Pythonにおける日付や時刻の文字列をdatetimeオブジェクトに変換する方法と、逆にdatetimeオブジェクトを文字列に変換する方法を解説します。

日付や時刻の扱い方について理解を深めましょう。

目次から探す

文字列からdatetimeに変換する方法

文字列の日付フォーマットとは

Pythonにおいて、日付や時刻を表す文字列は特定のフォーマットに従っている必要があります。

例えば、2022-10-1510/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オブジェクトを標準化された形式の文字列に変換することができます。

目次から探す