AttributeError 模块 ‘datetime’ 没有属性 ‘strptime’

目录

AttributeError module ‘datetime’ has no attribute ‘strptime’

  1. 模块“datetime”没有属性“strptime”
  2. 模块“datetime”没有属性“strftime”
  3. 模块“日期时间”没有属性“今天”
  4. 模块“datetime”没有属性“fromtimestamp”
  5. 模块“日期时间”没有属性“现在”

AttributeError 模块 ‘datetime’ 没有属性 ‘strptime’

strptime当我们尝试直接在模块上调用方法时,会出现错误“AttributeError module ‘datetime’ has no attribute ‘strptime’” datetime

要解决该错误,请使用以下导入import datetime并将该
strptime方法调用为datetime.datetime.strptime(...).

attributeerror 模块 datetime 没有属性 strptime

下面是错误如何发生的示例。

主程序
import datetime # ⛔️ AttributeError: module 'datetime' has no attribute 'strptime' dt = datetime.strptime("21/11/22 09:30", "%d/%m/%y %H:%M") print(dt)
如果您收到错误“AttributeError module ‘datetime’ has no attribute ”,请向下滚动到下一个子标题。 strftime

问题是我们试图strptime直接在
datetime模块上调用该方法。

改为调用类strptime上的方法datetime

要解决该错误,请改为调用类strptime上的方法datetime

主程序
import datetime dt = datetime.datetime.strptime( "21/11/22 09:30", "%d/%m/%y %H:%M" ) print(dt) # 👉️ 2022-11-21 09:30:00
确保您没有命名您的本地模块,datetime.py因为这会影响官方datetime模块。

或者,你可以datetime直接导入类

datetime
或者,您可以更改 import 语句以从模块中
导入类,
datetime而不必输入看起来datetime.datetime很混乱的内容。

主程序
from datetime import datetime dt = datetime.strptime("21/11/22 09:30", "%d/%m/%y %H:%M") print(dt) # 👉️ 2022-11-21 09:30:00

我们

datetime模块导入了
datetime
,并调用了

该类的
strptime方法。

datetime模块中有一个名为的类,这很令人困惑datetime

以下 import 语句导入datetime类。

主程序
from datetime import datetime # 👇️ <class 'datetime.datetime'> print(datetime)

以下 import 语句导入整个datetime模块。

主程序
import datetime # 👇️ <module 'datetime' from '/home/borislav/anaconda3/lib/python3.9/datetime.py'> print(datetime) # 👇️ <class 'datetime.datetime'> print(datetime.datetime)

使用别名让你的代码更具可读性

通过在 import 语句中使用别名,可以使代码更易于阅读。

主程序
# 👇️ alias datetime class to dt from datetime import datetime as dt result = dt.strptime("21/11/22 09:30", "%d/%m/%y %H:%M") print(result) # 👉️ 2022-11-21 09:30:00

我们将该datetime类别名为dt,因此您可以调用该strptime方法而dt.strptime()不是datetime.strptime()

检查对象有哪些属性

开始调试的最佳方法是调用dir()传递给导入模块的函数。

主程序
import datetime """ [ 'MAXYEAR', 'MINYEAR', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo' ] """ print(dir(datetime))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到该datetime模块没有名为 的属性strptime,因此它一定是该模块的某个类中的属性。

我们还可以看到datetime模块有一个属性datetime,就是我们用来成功调用strptime()方法的。

datetime如果从模块导入类datetime并将其传递给
dir()函数,您将strptime在属性列表中看到该方法。

主程序
from datetime import datetime # 👇️ [... 'strptime', ...] print(dir(datetime))

如果您收到错误“AttributeError:部分初始化的模块‘datetime’没有属性‘strptime’(很可能是由于循环导入)”,则在您的本地代码库中调用了一个文件datetime.py

要解决该错误,请确保不要将内置或远程模块的名称用于datetime.py您的本地文件,例如 。

目录

  1. 模块“datetime”没有属性“strftime”
  2. 模块“日期时间”没有属性“今天”
  3. 模块“datetime”没有属性“fromtimestamp”
  4. 模块“日期时间”没有属性“现在”

AttributeError 模块 ‘datetime’ 没有属性 ‘strftime’

strftime当我们尝试直接在模块上调用方法时,出现错误“AttributeError module ‘datetime’ has no attribute ‘strftime’” datetime

要解决该错误,请创建一个datetime对象并strftime改为调用对象上的方法。

attributeerror 模块 datetime 没有属性 strftime

下面是错误如何发生的示例。

主程序
import datetime # ⛔️ AttributeError: module 'datetime' has no attribute 'strftime' print(datetime.strftime("%d/%m/%y"))

代码示例中的问题是我们试图strftime直接在datetime模块上调用该方法。

要解决错误,我们必须datetime先创建一个对象并调用
strftime该对象的方法。

主程序
import datetime d = datetime.datetime(2022, 11, 24, 9, 30, 0) # 👇️ 24/11/22 print(d.strftime("%d/%m/%y")) # 👇️ ️Thursday, 24. November 2022 09:30AM print(d.strftime("%A, %d. %B %Y %I:%M%p")) # 👇️ Saturday, 14. May 2022 11:40AM d2 = datetime.datetime.now() # 👉️ current date print(d2.strftime("%A, %d. %B %Y %I:%M%p"))
确保您没有命名您的本地模块,datetime.py因为这会影响官方datetime模块。

我们导入了datetime
模块并实例化了
datetime
类。

该类datetime有一个
strftime
方法,我们可以使用它来获取日期和时间的字符串表示形式,由显式格式字符串控制。

datetime模块有一个datetime类,这很令人困惑。

链接的替代方法datetime.datetime是从模块导入类。

主程序
from datetime import datetime d = datetime(2022, 11, 24, 9, 30, 0) # 👇️ 24/11/22 print(d.strftime("%d/%m/%y")) # 👇️ ️Thursday, 24. November 2022 09:30AM print(d.strftime("%A, %d. %B %Y %I:%M%p")) # 👇️ Saturday, 14. May 2022 11:40AM d2 = datetime.now() print(d2.strftime("%A, %d. %B %Y %I:%M%p"))

我们datetime从模块中导入类,所以我们在实例化类时datetime不必使用。datetime.datetime

您还可以在导入语句中使用别名。

主程序
from datetime import datetime as dt d = dt(2022, 11, 24, 9, 30, 0) # 👇️ 24/11/22 print(d.strftime("%d/%m/%y")) # 👇️ ️Thursday, 24. November 2022 09:30AM print(d.strftime("%A, %d. %B %Y %I:%M%p")) # 👇️ Saturday, 14. May 2022 11:40AM d2 = dt.now() print(d2.strftime("%A, %d. %B %Y %I:%M%p"))

我们将类别名为datetimedt因此我们可以访问类上的方法而dt.now()不是datetime.now()

开始调试的最佳方法是调用dir()传递给导入模块的函数。

主程序
import datetime """ [ 'MAXYEAR', 'MINYEAR', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo' ] """ print(dir(datetime))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到该datetime模块没有名为 的属性strftime,因此它一定是该模块的某个类中的属性。

但是,如果我们将datetime对象传递给dir()函数,我们可以看到它有一个属性strftime

主程序
import datetime d = datetime.datetime(2022, 11, 24, 9, 30, 0) # [... 'strftime' ...] print(dir(d))

dir()当您需要查看您正在导入的内容以及导入模块上的哪些属性可用时,该函数非常有用。

目录

  1. 模块“日期时间”没有属性“今天”
  2. 模块“datetime”没有属性“fromtimestamp”
  3. 模块“日期时间”没有属性“现在”

AttributeError 模块 ‘datetime’ 没有属性 ‘today’

today当我们尝试直接在模块上调用该方法时,出现错误“AttributeError module ‘datetime’ has no attribute ‘today’” datetime

要解决该错误,请使用以下导入import datetime并将该
today方法调用为datetime.date.today().

attributeerror 模块日期时间今天没有属性

下面是错误如何发生的示例。

主程序
import datetime # ⛔️ AttributeError: module 'datetime' has no attribute 'today' print(datetime.today())

代码示例中的问题是我们试图today直接在datetime模块上调用该方法。

要解决该错误,请改为调用类today上的方法date

主程序
# 👇️ 2022-05-14 print(datetime.date.today()) # 👇️ 2022-05-14 13:45:57.409176 print(datetime.datetime.today())

在日期对象上调用时

today
方法返回当前本地日期。

在日期时间对象上调用时


today
方法返回本地日期时间。

确保您没有命名您的本地模块,datetime.py因为这会影响官方datetime模块。

datetime
或者,您可以更改 import 语句以从模块中
导入类,
datetime而不必输入看起来datetime.datetime很混乱的内容。

主程序
from datetime import datetime, date # 👇️ 2022-05-14 print(date.today()) # 👇️ 2022-05-14 13:45:57.409176 print(datetime.today())

我们

datetime模块导入了
datetime
date
,并调用了
这些类的方法。
today()

datetime模块中有一个名为的类,这很令人困惑datetime

通过在 import 语句中使用别名,可以使代码更易于阅读。

主程序
from datetime import datetime as dt, date # 👇️ 2022-05-14 print(date.today()) # 👇️ 2022-05-14 13:45:57.409176 print(dt.today())

我们将该datetime类别名为dt,因此您可以调用该today方法而
dt.today()不是datetime.today()

开始调试的最佳方法是调用dir()传递给导入模块的函数。

主程序
import datetime """ [ 'MAXYEAR', 'MINYEAR', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo' ] """ print(dir(datetime))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到该datetime模块没有名为 的属性today,因此它一定是该模块的某个类中的属性。

我们还可以看到datetime模块有一个属性datetime,就是我们用来成功调用today()方法的。

datetime如果从模块导入类datetime并将其传递给
dir()函数,您将today在属性列表中看到该方法。

主程序
from datetime import datetime, date # 👇️ [... 'today' ...] print(dir(datetime)) # 👇️ [... 'today' ...] print(dir(date))

如果您收到错误“AttributeError:部分初始化的模块‘datetime’没有属性‘today’(很可能是由于循环导入)”,则在datetime.py您的本地代码库中调用了一个文件。

要解决该错误,请确保不要将内置或远程模块的名称用于datetime.py您的本地文件,例如 。

目录

  1. 模块“datetime”没有属性“fromtimestamp”
  2. 模块“日期时间”没有属性“现在”

AttributeError 模块 ‘datetime’ 没有属性 ‘fromtimestamp’

fromtimestamp当我们调用模块上的方法时,出现错误“AttributeError module ‘datetime’ has no attribute ‘fromtimestamp’” datetime

要解决该错误,请使用以下导入import datetime并将该方法调用为datetime.datetime.fromtimestamp(...).

attributeerror 模块 datetime 没有来自时间戳的属性

下面是错误如何发生的示例。

主程序
import time import datetime # ⛔️ AttributeError: module 'datetime' has no attribute 'fromtimestamp' today = datetime.fromtimestamp(time.time()) print(today)

代码示例中的问题是我们试图直接在模块上调用
fromtimestampdatetime方法。

要解决该错误,请改为调用类fromtimestamp上的方法datetime

主程序
import time import datetime today = datetime.datetime.fromtimestamp(time.time()) # 👇️ 2022-05-14 13:16:59.426594 print(today)
确保您没有命名您的本地模块,datetime.py因为这会影响官方datetime模块。

datetime
或者,您可以更改 import 语句以从模块中
导入类,
datetime而不必输入看起来datetime.datetime很混乱的内容。

主程序
import time from datetime import datetime today = datetime.fromtimestamp(time.time()) # 👇️ 2022-05-14 13:16:59.426594 print(today)

我们

datetime模块导入了
datetime
,并调用了

该类的
fromtimestamp方法。

datetime模块中有一个名为的类,这很令人困惑datetime

通过在 import 语句中使用别名,可以使代码更易于阅读。

主程序
import time from datetime import datetime as dt today = dt.fromtimestamp(time.time()) # 👇️ 2022-05-14 13:16:59.426594 print(today)

我们将该datetime类别名为dt,因此您可以调用该fromtimestamp
方法而
dt.fromtimestamp()不是datetime.fromtimestamp()

您还可以将tz关键字参数传递给该方法,以将时间戳转换为特定时区。

主程序
import time from datetime import datetime as dt, timezone today = dt.fromtimestamp(time.time(), tz=timezone.utc) # 👇️ 2022-05-14 10:21:52.540533+00:00 print(today)

开始调试的最佳方法是调用dir()传递给导入模块的函数。

主程序
import datetime """ [ 'MAXYEAR', 'MINYEAR', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo' ] """ print(dir(datetime))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到该datetime模块没有名为 的属性fromtimestamp,因此它一定是该模块的某个类中的属性。

我们还可以看到datetime模块有一个属性datetime,就是我们用来成功调用fromtimestamp()方法的。

datetime如果从模块导入类datetime并将其传递给
dir()函数,您将fromtimestamp在属性列表中看到该方法。

主程序
from datetime import datetime # 👇️ [... 'fromtimestamp', ...] print(dir(datetime))

datetime.py如果您收到错误“AttributeError:部分初始化的模块‘datetime’没有属性‘fromtimestamp’(很可能是由于循环导入)”,则在您的本地代码库中调用了一个文件。

要解决该错误,请确保不要将内置或远程模块的名称用于datetime.py您的本地文件,例如 。

AttributeError 模块 ‘datetime’ 没有属性 ‘now’

now当我们尝试直接在模块上调用方法时,出现错误“AttributeError module ‘datetime’ has no attribute ‘now’” datetime

要解决该错误,请使用以下导入import datetime并将该
now方法调用为datetime.datetime.now().

attributeerror 模块日期时间现在没有属性

下面是错误如何发生的示例。

主程序
import datetime # ⛔️ AttributeError: module 'datetime' has no attribute 'now' print(datetime.now())

代码示例中的问题是我们试图now直接在datetime模块上调用该方法。

要解决该错误,请改为调用类now上的方法datetime

主程序
import datetime # 👇️ 2022-05-14 12:48:41.270852 print(datetime.datetime.now())
确保您没有命名您的本地模块,datetime.py因为这会影响官方datetime模块。

datetime
或者,您可以更改 import 语句以从模块中
导入类,
datetime而不必输入看起来datetime.datetime很混乱的内容。

主程序
from datetime import datetime # 👇️ 2022-05-14 12:48:41.270852 print(datetime.now())

我们

datetime模块导入了
datetime
,并调用了

该类的
now方法。

datetime模块中有一个名为的类,这很令人困惑datetime

您可以通过在导入语句中使用别名来解决这个问题。

主程序
# 👇️ alias datetime class to dt from datetime import datetime as dt # 👇️ 2022-05-14 12:48:41.270852 print(dt.now())

我们将该datetime类别名为dt,因此您可以调用该now方法而
dt.now()不是datetime.now()

开始调试的最佳方法是调用dir()传递给导入模块的函数。

主程序
import datetime """ [ 'MAXYEAR', 'MINYEAR', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo' ] """ print(dir(datetime))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到该datetime模块没有名为 的属性now,因此它一定是该模块的某个类中的属性。

我们还可以看到datetime模块有一个属性datetime,就是我们用来成功调用now()方法的。

datetime如果从模块导入类datetime并将其传递给
dir()函数,您将now在属性列表中看到该方法。

主程序
from datetime import datetime # 👇️ [... 'now', ...] print(dir(datetime))

如果您收到错误“AttributeError:部分初始化的模块‘datetime’没有属性‘now’(很可能是由于循环导入)”,则在datetime.py您的本地代码库中调用了一个文件。

要解决该错误,请确保不要将内置或远程模块的名称用于datetime.py您的本地文件,例如 。