62

我正在使用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:“模块”对象没有属性“strptime”

我究竟做错了什么?

4

6 回答 6

76

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

于 2012-08-22T09:45:59.073 回答
28

您正在导入没有strptime功能的模块 datetime。

该模块确实有一个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])
于 2012-08-22T09:35:10.003 回答
7

因为datetime是模块。班级是datetime.datetime

import datetime
dtDate = datetime.datetime.strptime(sDate,"%m/%d/%Y")
于 2012-08-22T09:34:52.217 回答
1

您应该使用模块中的类中的strftime静态方法。尝试:datetimedatetime

import datetime
dtDate = datetime.datetime.strptime("07/27/2012", "%m/%d/%Y")
于 2012-08-22T09:36:54.977 回答
0

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

from datetime import datetime as dt

dt.strptime(date, '%Y-%m-%d')
于 2016-10-14T06:34:48.387 回答
-1

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

于 2018-03-12T08:10:57.953 回答