Это похоже на строку ISO 8601 (хотя с аномально высокой точностью для субсекундного компонента);если тот факт, что у вас есть 7 цифр вместо 6 после десятичной точки, является опечаткой, вы можете использовать dateutil.parser.isoparse
на нем:
from dateutil.parser import isoparse
from dateutil.tz import UTC
dt = isoparse('2018-05-04T05:22:52.327261-04:00')
dt.astimezone(UTC)
В противном случае вы можете использовать dateutil.parser.parse
, который медленнее, но допускает более необычные форматы:
from dateutil.parser import parse
from dateutil.tz import UTC
dt = parse('2018-05-04T05:22:52.3272611-04:00')
dt.astimezone(UTC)
Вам также следует использовать parse
, если вы не уверены, какой будет формат.