首页 > 解决方案 > AttributeError:模块 'datetime' 没有属性 'strftime'

问题描述

我一直在尝试使用日期时间来获取今天的年、月和日。所以,我使用import datetime. 但是,我还需要 timedelta 命令,所以我使用了from datetime import timedelta. 我也在使用 strftime,我相信它是从from datetime import datetime. 但是,我不能一次运行所有这些。

那么,如何使用 datetime 模块、strftime 和 timedelta?任何帮助表示赞赏!

标签: python

解决方案


datetime一旦您考虑到日期datetime时间中的包名称模块名称,使用会变得非常混乱。

datetime 软件包有很多不同的模块,即:

datetime模块处理日期时间对象。

date模块处理日期对象。

time模块处理时间对象。

timedelta模块处理 timedelta 对象。

在您的情况下,当您说 时import datetime,您真正指的是datetime package不是datetime module

strftimedatetime 对象的方法(即在 datetime 模块下)

因此,您有两种方法可以解决此问题。

如果您使用import datetime,那么您必须指定包、模块然后是方法,如下所示:

import datetime

today = datetime.datetime.now()
today.strftime('%Y-%m-%d')

datetime或者更好、更易读的方法通过datetime执行from *package* import *module*. 应用于 datetime 包,这意味着:from datetime import datetime像这样:

from datetime import datetime

today = datetime.now()
today.strftime('%Y-%m-%d')

或者,我的首选方法是给模块一个别名(或者基本上是一个“昵称”),这样它就不会混淆(LOL):

from datetime import datetime as dt
from datetime import timedelta as td

today = dt.now() # get date and time today
delta = td(days=3) #initialize delta
date_you_actually_want = today + delta # add the delta days
date_you_actually_want.strftime('%Y-%m-%d') # format it

希望这可以为您解决问题。


推荐阅读