为什么datetime.strptime不能在这个简单的例子中工作?

我使用strptime将datestring转换为date时间。 根据链接页面,这样的格式应该工作:

 >>> # Using datetime.strptime() >>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") 

我的代码是:

 import datetime dtDate = datetime.strptime(sDate,"%m/%d/%Y") 

其中sDate = "07/27/2012" (例如)。 (我从同一页面了解到, %Y“以十进制数表示的世纪年”。

我已经尝试把sDate的实际值放入代码中:

 dtDate = datetime.strptime("07/27/2012","%m/%d/%Y") 

但是这不起作用。 我得到的错误是: AttributeError:'模块'对象没有属性'strptime'

我究竟做错了什么?

你应该使用datetime.datetime.strptime 。 请注意,非常旧的Python版本(2.4及以上版本)没有datetime.datetime.strptime ; 在这种情况下使用time.strptime

您正在导入模块datetime,它没有strptime函数。

该模块具有该方法的datetime对象:

 import datetime dtDate = datetime.datetime.strptime(sDate, "%m/%d/%Y") 

或者,您可以从模块中导入datetime对象:

 from datetime import datetime dtDate = datetime.strptime(sDate, "%m/%d/%Y") 

请注意, strptime方法是在python 2.5中添加的; 如果您使用的是旧版本,请使用以下代码:

 import datetime, time dtDate = datetime.datetime(*time.strptime(sDate, "%m/%d/%Y")[:6]) 

因为datetime是模块。 该类是datetime.datetime

 import datetime dtDate = datetime.datetime.strptime(sDate,"%m/%d/%Y") 

你应该从datetime模块的datetime类中使用strftime静态方法。 尝试:

 import datetime dtDate = datetime.datetime.strptime("07/27/2012", "%m/%d/%Y") 

您也可以执行以下操作来导入date时间

 from datetime import datetime as dt dt.strptime(date, '%Y-%m-%d')