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

Posted

技术标签:

【中文标题】为啥 datetime.strptime 在这个简单的例子中不起作用?【英文标题】:Why is datetime.strptime not working in this simple example?为什么 datetime.strptime 在这个简单的例子中不起作用? 【发布时间】:2012-08-17 16:53:12 【问题描述】:

我正在使用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'

我做错了什么?

【问题讨论】:

这个错误可能是该函数不在模块中。尝试从日期时间导入日期时间。或调用为 datetime.datetime.strptime @MartijnPieters:谢谢。当我发布它时,我意识到我应该添加... :) 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

from datetime import datetime as dt

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

【讨论】:

【参考方案3】:

您正在导入模块 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])

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

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

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

【讨论】:

谢谢,但后来我得到:AttributeError: type object 'datetime.datetime' has no attribute 'strptime' @Wikis:您的项目中有另一个名为datetime 的模块吗? 没有。 datetime 在其他地方使用:now = datetime.datetime.now() 如果有帮助的话。 @Wikis:您是否使用过 2.5 之前的 python 版本? 关于同一个问题,我正在尝试做这样的事情 - dt = datetime.datetime.strptime("2016-01-12T03:16:10.815675+00:00", utc) 当然它不起作用,但只是想知道有没有办法做到这一点。我得到一个 utc 字符串并想将其转换为 datetime 对象。有简单的方法吗?

以上是关于为啥 datetime.strptime 在这个简单的例子中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

不适用于python中的代码datetime.strptime

加快 datetime.strptime

python时间处理,datetime中的strftime/strptime

Python中datetime模块中strftime/strptime函数

将 unicode 转换为 datetime 正确的 strptime 格式

python中datetime模块中的strftime与strptime