Python逆引き:日付文字列をdatetimeに変換したい

備忘録ヘッダ画像 逆引きソースコード

日付文字列を datetime オブジェクトに変換するには、Pythonの datetime モジュールを使用できる。

年月日文字列を変換する場合

datetime.strptime() 関数を使用すると、指定した書式の日付文字列を datetime オブジェクトに変換可能。

日付文字列(YYYY-MM-DD)→datetimeのコード
from datetime import datetime

date_string = "2024-02-05"
date_format = "%Y-%m-%d"

# 日付文字列をdatetimeオブジェクトに変換
date_object = datetime.strptime(date_string, date_format)

print(date_object)  # 変換されたdatetimeオブジェクトを出力

“%Y-%m-%d” は、日付文字列の形式を示しており、%Y は年、%m は月、%d は日を表している。
必要に応じて、日付文字列の形式に合わせて適切な書式指定子を使用すると良い。

時分秒まで含んだ文字列の場合

日付文字列に時分秒が含まれる場合でも、同様の方法で datetime オブジェクトに変換できる。
datetime.strptime() 関数を使用して、日付文字列の形式を指定し、適切な書式指定子を使って時分秒を含める。

日付文字列(YYYY-MM-DD hh:mm:ss)→datetimeのコード
from datetime import datetime

date_string = "2024-02-05 12:30:45"
date_format = "%Y-%m-%d %H:%M:%S"

# 日付文字列をdatetimeオブジェクトに変換
date_object = datetime.strptime(date_string, date_format)

print(date_object)  # 変換されたdatetimeオブジェクトを出力

この例では、”%Y-%m-%d %H:%M:%S” の書式指定子を使用して、年月日時分秒を表す日付文字列を指定している。%H は時(24時間表記)、%M は分、%S は秒を表している。
必要に応じて、日付文字列の形式に合わせて書式指定子を変更する。

ミリ秒まで含んだ文字列の場合

strptime() メソッドを使用してミリ秒を含む日付文字列を変換する場合、ミリ秒の部分を %f 書式指定子で表す。

ミリ秒まで含んだ文字列→datetimeのコード
from datetime import datetime

date_string = "2024-02-05T12:30:45.123"
date_format = "%Y-%m-%dT%H:%M:%S.%f"

date_object = datetime.strptime(date_string, date_format)

print(date_object)  # 変換されたdatetimeオブジェクトを出力

このコードでは、”%Y-%m-%dT%H:%M:%S.%f” の書式指定子を使用して、年月日時分秒ミリ秒を表す日付文字列を指定している。
%f はミリ秒を表し、ピリオド(.)とそれに続く数字をミリ秒の部分として解釈する。

ISO 8601フォーマット文字列の場合

ISO 8601形式の日付文字列を datetime オブジェクトに変換するには、datetime.fromisoformat() メソッドを使用します。
このメソッドはPython 3.7以降で利用可能、かつ3.11より前のバージョンはYYYY-MM-DD フォーマットのみをサポート。

ISO 8601形式→datetimeのコード
from datetime import datetime

date_string = "2024-02-05T12:30:45"
date_object = datetime.fromisoformat(date_string)

print(date_object)  # 変換されたdatetimeオブジェクトを出力

このコードは、ISO 8601形式の日付文字列 “2024-02-05T12:30:45” を datetime オブジェクトに変換する。
fromisoformat() メソッドは、指定された文字列がISO 8601形式であることを前提としており、文字列がその形式に準拠していないとValueErrorになる。

タイトルとURLをコピーしました