from datetime import datetime
today = datetime.now()
today.strftime('%Y-%m-%d')
或者,我更喜欢的方法是给模块一个别名(或者基本上是一个“昵称”),这样它就不会变得混乱(LOL):
from datetime import datetime as dt
from datetime import timedelta
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
# import datetime class from the datetime module:
from datetime import datetime
# instantiate a new datetime object:
a = datetime(12, 10, 30, 11, 23, 45)
# call the strftime() method on the object:
print(a.strftime("%H:%M:%S %Z"))
# 11:23:45
一旦考虑到
datetime
同时是包名和日期时间内的模块名,使用datetime
就会变得非常混乱。datetime
包有许多不同的模块,即:datetime
模块处理datetime对象。date
模块处理日期对象。time
模块处理时间对象。timedelta
模块处理timedelta对象。在您的例子中,当您说
import datetime
时,您真正指的是datetime
包而不是模块。strftime
是datetime
对象的方法(即在datetime模块下)因此,有两种方法可以实现这一点。
如果使用
import datetime
,则必须指定包、模块和方法,如下所示:或者,更好的、更具可读性的方法是通过执行
from *package* import *module*
来导入datetime
包下的datetime
模块。应用于datetime包,这意味着:from datetime import datetime
这样:或者,我更喜欢的方法是给模块一个别名(或者基本上是一个“昵称”),这样它就不会变得混乱(LOL):
希望这能帮你解决问题。
您的错误
module 'datetime' has no attribute 'strftime'
表明这不是导入的问题,而是如何调用strftime()
方法的问题。strftime()
是datetime
类上的一个方法(它是datetime
模块的一部分),因此需要一个实例化的datetime
对象来调用它。例如:相关问题 更多 >
编程相关推荐