我正在编写一个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?
先谢谢。
答案 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")