应将此日期格式2018-11-11 01:54:16+00:00转换为Nov 11, 2018 7:24:16 AM GMT+0530
Input : 2018-11-11 01:54:16+00:00
Expected : Nov 11, 2018 7:24:16 AM GMT+0530
Actual : Nov 11, 2018 07:24:16 AM IST+0530我可以转换时间,但不能像上面指定的Expected & Actual (GMT & IST)那样转换时区。下面是代码片段的详细信息:
from pytz import timezone
from dateutil import parser
from datetime import datetime
fmt = "%b %d, %Y %H:%M:%S %p %Z%z"
dt = '2018-11-11 01:54:16+00:00'
tmp = parser.parse(dt)
t1 = tmp.astimezone(timezone('Asia/Kolkata'))
print t1 #prints "2018-11-11 07:24:16+05:30"
print t1.strftime(fmt) #prints "Nov 11, 2018 07:24:16 AM IST+0530"
t1 = tmp.astimezone(timezone('GMT'))
print t1.strftime(fmt) #prints "Nov 11, 2018 01:54:16 AM GMT+0000"我是否遗漏了要打印GMT (而不是IST)的内容?
Nov 11, 2018 7:24:16 AM GMT+0530发布于 2018-11-11 16:30:18
我认为Arrow模块最适合这个;
>>> import arrow
>>> utc = arrow.utcnow()
>>> utc
<Arrow [2013-05-11T21:23:58.970460+00:00]>
>>> utc = utc.shift(hours=-1)
>>> utc
<Arrow [2013-05-11T20:23:58.970460+00:00]>
>>> local = utc.to('US/Pacific')
>>> local
<Arrow [2013-05-11T13:23:58.970460-07:00]>具体到您的需求,这工作得很好;
>>> asia = arrow.now('Asia/Kolkata')
>>> asia.to('GMT').format("MMM D, YYYY HH:mm:ss A ZZ")
'Nov 11, 2018 10:01:24 AM +00:00'试试docs;这是一个非常强大且易于使用的模块。
https://stackoverflow.com/questions/53246876
复制相似问题