【问题标题】: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:谢谢。当我发布它时,我意识到我应该添加... :)

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


【解决方案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 对象。有简单的方法吗?
            猜你喜欢
            • 1970-01-01
            • 2019-04-07
            • 1970-01-01
            • 1970-01-01
            • 2017-11-25
            • 2013-03-16
            • 1970-01-01
            • 2011-01-15
            • 1970-01-01
            相关资源
            最近更新 更多