【问题标题】:Parse and format the date from the GitHub API in Python [duplicate]在 Python 中解析和格式化来自 GitHub API 的日期 [重复]
【发布时间】:2013-09-18 16:42:24
【问题描述】:

GitHub API 请求返回的当前值如下所示:

2013-09-12T22:42:02Z

如何解析这个值并使它看起来更好?

【问题讨论】:

  • @Blender 我看到了那个,但问题是推荐的代码(在第二个答案中)抛出 ValueError: unconverted data仍然存在:Z。我发布了正确的答案,以防其他人尝试与我相同的事情。
  • 不是公认的答案。第二个答案会,因为它实际上并没有正确解析日期格式。
  • @Blender 我跳过了接受的答案,因为不必安装模块更容易,而是使用手头的模块。我更喜欢调整 strptime 格式以适应 GitHub API。
  • 加上此问题/答案的名称有助于 Google 员工在不知道 API 专门使用的日期/时间标准名称的情况下找到解决方案。
  • 对,但是返回的格式是 ISO 8601。用datetime.strptime 解析它只能处理 ISO 8601 的一种特定情况。

标签: python python-3.x github-api


【解决方案1】:

从 GitHub API 返回的日期格式为 ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ

要将字符串转换为 Python 日期对象,请使用模块 datetime

import datetime
date = datetime.datetime.strptime(<date_string>, "%Y-%m-%dT%H:%M:%SZ")

然后您可以使用 date.strftime() 将此字符串解析为您选择的格式:

# Result: Thursday Sep 12, 2013 at 22:42 GMT
date.strftime('%A %b %d, %Y at %H:%M GMT')

或者,如果您希望它更“自动”,指令%c 将根据您系统的区域设置和语言设置自动选择日期/时间字符串。

# On my system, I get the following output:
#  Thu Sep 12 22:42:02 2013
date.strftime('%c')

如果您想自定义它,可以在此处找到完整的指令列表:http://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2018-07-28
    • 2014-11-10
    • 2017-12-02
    • 2014-10-02
    相关资源
    最近更新 更多