属性错误:“模块”对象没有属性“utcnow”

问题描述 投票:0回答:2

当我输入简单代码时:

import datetime
datetime.utcnow()

,我收到错误消息:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    datetime.utcnow()
AttributeError: 'module' object has no attribute 'utcnow'

但是Python的

utcnow
文档就在这里:https://docs.python.org/library/datetime.html#datetime.datetime.utcnow。为什么
utcnow
在我的电脑上不起作用?谢谢!

python datetime
2个回答
81
投票

您将模块与类型混淆了。

使用:

import datetime

datetime.datetime.utcnow()

或使用:

from datetime import datetime

datetime.utcnow()

例如引用

datetime
模块中的
datetime
类型,或者将该类型从模块导入到您的命名空间中。如果您使用后一种形式并且需要该模块中的 other 类型,也不要忘记导入它们:

from datetime import date, datetime, timedelta

第一种形式的演示:

>>> import datetime
>>> datetime
<module 'datetime' from '/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/lib-dynload/datetime.so'>
>>> datetime.datetime
<type 'datetime.datetime'>
>>> datetime.datetime.utcnow()
datetime.datetime(2013, 10, 4, 23, 27, 14, 678151)

0
投票

请注意,“datetime”类中的方法“utcnow”现已弃用,并将在未来版本中删除。请参阅此 Python 3.12 发行说明了解更多信息。

您可以使用以下内容代替:

from datetime import datetime, timezone

datetime.now(timezone.utc)
© www.soinside.com 2019 - 2024. All rights reserved.