Преобразование строки времени zulu в объект MST datetime


Как я могу преобразовать эту строку в объект MST timezone datetime?

>>> type(date_str)
<type 'str'>
>>> date_str
'2017-01-17T20:02:45.767Z'
1 2

1 ответ:

Это строка, соответствующая стандарту ISO 8601 . Существуют различные библиотеки , которые могут преобразовать это. Но чтобы совместить это с преобразованием часового пояса, вы можете:

import datetime as dt
from pytz import timezone

def convert_my_iso_8601(iso_8601, tz_info):
    assert iso_8601[-1] == 'Z'
    iso_8601 = iso_8601[:-1] + '000'
    iso_8601_dt = dt.datetime.strptime(iso_8601, '%Y-%m-%dT%H:%M:%S.%f')
    return iso_8601_dt.replace(tzinfo=timezone('UTC')).astimezone(tz_info)

my_dt = convert_my_iso_8601('2017-01-17T20:02:45.767Z', timezone('MST'))