Это может работать для вас:
Python - Convert UTC datetime string to local datetime
Я скопировал код, чтобы сделать его легче решать, я указываю, что это ответ другого человека в любом случае.
from datetime import datetime,tzinfo,timedelta
class Zone(tzinfo):
def __init__(self,offset,isdst,name):
self.offset = offset
self.isdst = isdst
self.name = name
def utcoffset(self, dt):
return timedelta(hours=self.offset) + self.dst(dt)
def dst(self, dt):
return timedelta(hours=1) if self.isdst else timedelta(0)
def tzname(self,dt):
return self.name
GMT = Zone(0,False,'GMT')
EST = Zone(-5,False,'EST')
print datetime.utcnow().strftime('%m/%d/%Y %H:%M:%S %Z')
print datetime.now(GMT).strftime('%m/%d/%Y %H:%M:%S %Z')
print datetime.now(EST).strftime('%m/%d/%Y %H:%M:%S %Z')
t = datetime.strptime('2011-01-21 02:37:21','%Y-%m-%d %H:%M:%S')
t = t.replace(tzinfo=GMT)
print t
print t.astimezone(EST)
Я пробовал это в своем ноутбуке Python и отлично работает.
Смещение с помощью% Z всегда в виде +0000 без символа между ними час/минуту. Это все, что вам нужно? –
Нет, isoformat не решает проблему. И% z зависит от платформы. Я думаю, вы должны придумать решение для партирования для части UTC. –
yep, все, что мне нужно сделать, это включить символ ':'. поэтому пользовательский синтаксический анализ сам по себе является ответом? – user3768071