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

Rei*_* SE 55 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")
Run Code Online (Sandbox Code Playgroud)

我的代码是:

import datetime
dtDate = datetime.strptime(sDate,"%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)

在哪里sDate = "07/27/2012"(例如).(据我所知,从同一页面来看,%Y就是"以世纪为十进制数的年份.")

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

dtDate = datetime.strptime("07/27/2012","%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)

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

我究竟做错了什么?

eca*_*mur 65

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

  • 就是这样,谢谢!我正在使用史前的Python 2.3! (2认同)

Mar*_*ers 22

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

该模块确实有一个datetime具有该方法的对象:

import datetime
dtDate = datetime.datetime.strptime(sDate, "%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)

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

from datetime import datetime
dtDate = datetime.strptime(sDate, "%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)

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

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


Ign*_*ams 6

因为datetime是模块.这堂课是datetime.datetime.

import datetime
dtDate = datetime.datetime.strptime(sDate,"%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但后来我得到:**AttributeError: type object 'datetime.datetime' has no attribute 'strptime'** (2认同)