Python | module ‘datetime’ has no attribute ‘strptime’ エラーの原因と解決策

2023-02-26Python エラー,Python

Python | module 'datetime’ has no attribute 'strptime’ エラーの原因と解決策

Pythonの実行時に発生するエラー「module 'datetime’ has no attribute 'strptime’」の原因と解決策について紹介しています。

AttributeError: module 'datetime’ has no attribute 'strptime’
AttributeError: モジュール 'datetime’ には属性 'strptime’ がありません

確認環境

Windows11 ローカル
Python python-3.11.1

module 'datetime’ has no attribute 'strptime’ エラーの原因

「module 'datetime’ has no attribute 'strptime’」というPythonの実行エラーは 場合に発生するエラーです。

例えば以下のような事がエラーの発生原因にあります。

  • datetimeモジュールのdatetimeクラスが指定できていない

module 'datetime’ has no attribute 'strptime’ エラーの発生例と解決策

「module 'datetime’ has no attribute 'strptime’」エラーが発生するコード例とその解決策を紹介します。

datetimeモジュールのstrptimeクラスが指定できていない

このエラーは「datetime」モジュールの「datetime」クラスが指定できていない場合に発生します。

例えば、「datetime」をインポートして文字列型を日時に変換する為にstrptime()関数を実行する場合、以下のように記述してしまうとエラーとなります。

import datetime

# 文字列型を日時に変換する
set_time = datetime.strptime("2023-01-10 10:10:10", "%Y-%m-%d %H:%M:%S")

# AttributeError: module 'datetime' has no attribute 'strptime'

上記のコードエラーを解決するには2つの方法があり、まずは「datetime」クラスを正確に指定する方法があります。

「datetime」という名前が同じで、ミスしやすい場面ですが、「datetime.datetime」と記述するのが正解です。

import datetime

# 文字列型を日時に変換する
set_time = datetime.datetime.strptime("2023-01-10 10:10:10", "%Y-%m-%d %H:%M:%S")

もうひとつの解決策として、インポート時に「from」キーワードを使い「from datetime import datetime」として「datetime」クラスだけをインポートする方法があります。
「datetime」「datetime」クラスとして扱う事が可能になります。

from datetime import datetime

# 文字列型を日時に変換する
set_time = datetime.strptime("2023-01-10 10:10:10", "%Y-%m-%d %H:%M:%S")