使用 Python 将时间从 UTC 转换为 GMT

Convert time from UTC to GMT with Python

我正在编写一个 python 应用程序,可以将 YML 文件转换为我博客的静态 HTML 页面(静态站点生成器)。我想添加一个 RSS 提要。在某个地方我读到发布日期必须是:

<pubDate>Wed, 05 Jul 2017 18:38:23 GMT</pubDate>

但我有:

<pubDate>2017-07-05T18:38:23+00:00</pubDate>

来自Python的datetimeAPI真是烦死了这些。如何将字符串 2017-07-05T18:38:23+00:00 转换为 GMT?

在此先致谢。

import datetime
basedate="2017-07-05T18:38:23+00:00"
formatfrom="%Y-%m-%dT%H:%M:%S+00:00"
formatto="%a %d %b %Y, %H:%M:%S GMT"
print datetime.datetime.strptime(basedate,formatfrom).strftime(formatto)

将 return 你正确的转录:2017 年 7 月 5 日,星期三,18:38:23 GMT

我的格式来源:http://strftime.org/

我强烈建议使用 dateutil,它是 datetime 的一个非常强大的扩展。它有一个强大的解析器,可以将任何输入格式的日期时间解析为日期时间对象。然后您可以将其重新格式化为您想要的输出格式。

这应该可以满足您的需求:

from dateutil import parser

original_date = parser.parse("2017-07-05T18:38:23+00:00")
required_date = original_date.strftime("%a %d %b %Y, %H:%M:%S GMT")

虽然其他答案都是正确的,但我总是使用arrow来处理python中的日期时间,非常好用。

例如,您可以简单地做

import arrow
utc = arrow.utcnow()
local = utc.to('US/Pacific')
local.format('YYYY-MM-DD HH:mm:ss ZZ')

文档包含更多信息。