【问题标题】:Google app engine datastore datetime to date in Python?Python中的Google应用引擎数据存储日期时间?
【发布时间】:2012-06-26 07:31:02
【问题描述】:

我一直讨厌管理日期、时间、日期时间以及它们所需的各种格式和转换的麻烦。我正在参加有关使用 google 应用引擎的在线课程,它说要使用 datetime 属性,该属性以以下格式返回日期:

2012-06-25 01:17:40.273000

我试过了

datetime.strptime('2012-06-25 01:17:40.273000','%y-%m-%d %H:%M:%S')

但它没有工作..

我只想提取 2012-06-25 部分,而不使用 hacky 正则表达式或字符串切片解决方案。

如何解析并将其转换为正确的格式?

【问题讨论】:

  • “它没有用”非常无用。 发生了什么?

标签: python google-app-engine datetime date time


【解决方案1】:

终于找到了(问了这个问题后不久,但过去一个小时我一直在尝试)

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f')

我想要什么:

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f').strftime('%m-%d-%Y')

【讨论】:

    【解决方案2】:

    如果您使用的是 datetime 属性,那么您返回的对象是 datetime 实例而不是字符串。

    在控制台上

    >>> from datetime import datetime
    >>> x = datetime.now()
    >>> print x
    2012-06-25 12:03:15.835467
    >>> x.date()
    datetime.date(2012, 6, 25)
    >>> 
    >>> print x.date()
    2012-06-25
    >>> 
    

    查看打印语句。它执行到字符串的隐式转换。如果您在模板中输出日期时间属性值,这可能就是正在发生的事情。

    因此,在您的代码中,您应该只对 datetime 对象使用 .date() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 2011-04-01
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多