Нет оператора подстановки. Список директив формата , поддерживаемый strptime
, находится в документации.
Вам нужна директива формата %z
, которая поддерживает представление часового пояса в форме +HHMM
или -HHMM
. Хотя это поддерживается datetime.strftime
в течение некоторого времени, оно поддерживается только в strptime
, начиная с Python 3.2 .
На Python 2 лучший способ справиться с этим - использовать datetime.datetime.strptime
, вручную обработать отрицательное смещение и получить datetime.timedelta
:
import datetime
tz = "+10:00"
def tz_to_timedelta(tz):
min = datetime.datetime.strptime('', '')
try:
return -(datetime.datetime.strptime(tz,"-%H:%M") - min)
except ValueError:
return datetime.datetime.strptime(tz,"+%H:%M") - min
print tz_to_timedelta(tz)
В Python 3.2 удалите :
и используйте %z
:
import time
tz = "+10:00"
tz_toconvert = tz[:3] + tz[4:]
tz_struct_time = time.strptime(tz_toconvert, "%z")