Pythonでstrftimeとstrptimeの違いについて

Pythonのstrftimestrptimeは、日付と時刻を文字列とdatetimeオブジェクトの間で変換するために使用される2つの関数ですが、それぞれ異なる目的と使い方があります。

  1. strftime:

    • strftime(string format time)は、datetimeオブジェクトを文字列に変換するための関数です。つまり、datetimeオブジェクトから日付や時刻を表す文字列を生成するのに使用します。
    • strftimeは、datetimeオブジェクトを指定したフォーマットの文字列に変換するために、フォーマット指定子を使用します。フォーマット指定子は、年、月、日、時、分、秒、曜日などの要素を指定し、日付や時刻の表現をカスタマイズします。
    • 例えば、"%Y-%m-%d %H:%M:%S"というフォーマット指定子を使用すると、datetimeオブジェクトを指定した形式の文字列に変換できます。
  2. strptime:

    • strptime(string parse time)は、文字列からdatetimeオブジェクトに変換するための関数です。つまり、日付や時刻を表す文字列からdatetimeオブジェクトを生成するのに使用します。
    • strptimeは、文字列を解析して、その中に含まれる日付や時刻の情報を抽出し、datetimeオブジェクトに変換します。この際、フォーマット指定子を使用して、文字列内の各要素の位置や形式を指定します。文字列とフォーマットが一致しない場合、エラーが発生します。

以下は、strftimestrptimeの使用例です。

python
from datetime import datetime

# datetimeオブジェクトを文字列に変換する(strftimeの使用)
current_datetime = datetime.now()
formatted_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"フォーマットされた日付: {formatted_date}")

# 文字列をdatetimeオブジェクトに変換する(strptimeの使用)
date_string = "2023-10-04 14:30:00"
parsed_datetime = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(f"解析された日付: {parsed_datetime}")

strftimedatetimeオブジェクトを文字列に変換し、strptimeは文字列をdatetimeオブジェクトに変換します。両方の関数は、日付と時刻の表現を操作するために非常に便利です。ただし、フォーマット指定子の正確な指定が重要で、誤ったフォーマット指定子を使用すると意図しない結果が生じる可能性があるため、注意が必要です。