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

时间:2017-08-01 21:38:36

标签: python datetime utc gmt

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

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

但我有:

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

来自Python的datetime API对于这些来说真的很麻烦。如何将字符串2017-07-05T18:38:23+00:00转换为GMT?

先谢谢。

3 个答案:

答案 0 :(得分:5)

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)

将返回正确的转录:2017年7月5日星期三,格林尼治标准时间18:38:23

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

答案 1 :(得分:3)

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

对于您的示例,您只需执行

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

该文档包含更多信息。

答案 2 :(得分:1)

我强烈建议使用dateutil,它是日期时间的一个非常强大的扩展。它有一个强大的解析器,可以将datetime的任何输入格式解析为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")