我正在尝试获取当前日期,因此可以将其传递给SQL中的DATE字段。我正在使用datetime.datetime,下面是我的代码:
from datetime import datetime
dt = datetime.strptime(datetime.today().date(), "%m/%d/%Y").date()
但是,我遇到此错误:
TypeError: strptime() argument 1 must be str, not datetime.datetime
如何解决以上问题?我仍然对datetime和datetime.datetime感到困惑,我想继续使用from datetime import datetime
而不是import datetime
。
如何解决以上问题?谢谢
如果仔细看,以下陈述的结果,
>>> datetime.today().date()
datetime.date(2019, 9, 30)
>>> str(datetime.today().date())
'2019-09-30'
您会注意到返回的日期时间是-
分隔的,您必须将其显式转换为字符串值。因此,为了使上述语句起作用,请将其更改为:
dt = datetime.strptime(str(datetime.today().date()), "%Y-%M-%d").date()
然后将其更改为使用strftime
所需的任何格式(在您的情况下>>> "%d/%m/%Y"
)
>>> dt.strftime("%d/%m/%Y")
'30/01/2019'
只需使用datetime.strftime
:
datetime.strftime
打印:
from datetime import datetime
dt = datetime.today().strftime("%m/%d/%Y")
print(dt)
'09/30/2019'
接受一个字符串,并创建一个strptime
对象。而datetime
的作用恰恰相反,它取一个strftime
对象并返回一个字符串。