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

时间:2012-08-22 09:32:41

标签: python string datetime type-conversion datetime-format

我正在使用strptime将日期字符串转换为datetime。根据链接页面,这样的格式应该有效:

>>> # 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:'module'对象没有属性'strptime'

我做错了什么?

6 个答案:

答案 0 :(得分:59)

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

答案 1 :(得分:21)

您正在导入模块日期时间,该日期时间没有strptime功能。

该模块 具有datetime对象,但该方法:

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

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

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

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

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

答案 2 :(得分:6)

因为datetime是模块。该课程为datetime.datetime

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

答案 3 :(得分:1)

您应该使用来自strftime模块的datetime类的datetime静态方法。尝试:

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

答案 4 :(得分:0)

您还可以执行以下操作,以导入日期时间

from datetime import datetime as dt

dt.strptime(date, '%Y-%m-%d')

答案 5 :(得分:0)

如果在项目的文件夹中,您创建了一个名为“datetime.py”的文件