Python日期时间模块和获取当前时间

Python日期时间模块和获取当前时间,python,datetime,Python,Datetime,我是Python的初学者,我想做一个简单的项目来说明离圣诞节还有多少时间。 首先,我对当前时间有一个问题: import datetime now = datetime.now() print(now)` 错误显示模块“datetime”没有属性“now” 然后我通过从datetime导入datetime执行 但比日期的计算产生了一个错误 守则: from datetime import datetime xmas = datetime.date(2020, 12, 25) - datetim

我是Python的初学者,我想做一个简单的项目来说明离圣诞节还有多少时间。 首先,我对当前时间有一个问题:

import datetime
now = datetime.now()
print(now)`
错误显示模块“datetime”没有属性“now”

然后我通过从datetime导入datetime执行

但比日期的计算产生了一个错误
守则:

from datetime import datetime
xmas = datetime.date(2020, 12, 25) - datetime.date.today()
now = datetime.now()
print(now)
错误是:
发生异常:TypeError描述符“date”需要一个“datetime.datetime”对象,但收到一个“int”

请帮帮我。

祝你今天愉快

您必须像这样导入它:

从日期时间导入日期时间

导入
datetime
类有点混乱,因为它位于一个也称为
datetime
的模块中。当您从datetime导入datetime时,您正在将类
datetime
导入到当前作用域中,只需执行
datetime.now()
。如果您只是执行导入日期时间
操作,那么您正在导入模块
datetime
,因此类是
datetime.datetime
,使
now
方法
datetime.datetime.now()
。清澈如泥?:)

进一步增加混淆的是,
datetime
模块有一个
date
类,而
datetime
类有一个
date
方法。您在代码中混合了这两者,当您打算构造
date
对象时,调用
datetime
类的
date
方法。由于您从datetime导入了datetime
,因此根本没有导入
datetime.date

不管怎样,下面是解决方法:

import datetime

xmas = datetime.date(2020, 12, 25) - datetime.date.today()
now = datetime.datetime.now()
print(now)
注意,在这段代码中,
xmas
是一个
datetime.timedelta
对象,而
now
是一个
datetime.datetime
对象

你也可以这样做:

from datetime import date, datetime

xmas = date(2020, 12, 25) - date.today()
now = datetime.now()
print(now)

希望看到这两个例子并排有助于澄清模块与类的关系。这都是关于不同级别的间接寻址——在第一个示例中,
import
语句引入了整个模块,您的代码需要指定要从中提取哪些类。在第二个示例中,来自。。。import
语句将这两个类作为导入的一部分从模块中拉出,因此代码可以通过这些名称直接访问它们。由于名称非常相似,除非您真正了解import语句的确切含义,否则无法依靠名称来了解您正在访问的内容。

我可以再要求一件事吗?这是如何计算到圣诞节的时间,就像我计算日期一样。因为我对它有问题
time\u直到xmas=datetime(2020,12,25)-datetime.now()