python - AttributeError:模块 'datetime' 没有属性 'strftime'
问题描述
我一直在尝试使用日期时间来获取今天的年、月和日。所以,我使用import datetime
. 但是,我还需要 timedelta 命令,所以我使用了from datetime import timedelta
. 我也在使用 strftime,我相信它是从from datetime import datetime
. 但是,我不能一次运行所有这些。
那么,如何使用 datetime 模块、strftime 和 timedelta?任何帮助表示赞赏!
解决方案
datetime
一旦您考虑到日期datetime
时间中的包名称和模块名称,使用会变得非常混乱。
该datetime
软件包有很多不同的模块,即:
datetime
模块处理日期时间对象。
date
模块处理日期对象。
time
模块处理时间对象。
timedelta
模块处理 timedelta 对象。
在您的情况下,当您说 时import datetime
,您真正指的是datetime
package 而不是datetime
module。
strftime
是datetime
对象的方法(即在 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
希望这可以为您解决问题。
推荐阅读
- sql - SQL Server:如何显示 case 语句中的占位符行?
- ruby - 由于旧的 libxml2,厨师命令失败
- amazon-web-services - AWS CloudFormation 转换 - 如何正确返回错误消息?
- ace-editor - 更改在 ace-editor 中为令牌显示的文本
- opengl - openGL-绘制四边形网格并手动绘制它们
- c++ - 如何在 Visual Studio 2019 中使用 cmake 项目进行“编辑并继续”构建?
- javascript - 在逐个测试的基础上开玩笑模拟类方法
- r - 在 R 闪亮应用的操作按钮中切换图标
- c# - 日志中的 IIS 超时和 sc-win32-status 64
- javascript - Vuetify 容器不会填充高度