python: jak obsługiwać znaczniki czasu (ISO8601)

Mam do czynienia w Pythonie z łańcuchami reprezentującymiiso8601 znaczniki czasu.

Mój ciąg znaczników czasu ma zatem następującą postać:

timestamp = "2011-08-18T10:29:47+03:00"

Obecnie konwertuję je w Pythonie za pomocą:

timestamp = timestamp[:-6]
timestamp = datetime.datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S")

Ale w ten sposób tracę wszystkie informacje o strefie czasowej. Widziałem wiele przykładów na s-o dotyczących znaczników czasu i pythona, niestety nikt nie zachował również strefy czasowej lub po prostu odzyskał opóźnienie w strefie czasowej za pomocą:

delay = timestamp[-6:]

Próbowałem też:

timestamp = "2011-08-18T10:29:47+03:00"
timestamp = datetime.datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S%z")

ale wrócił

ValueError: 'z' is a bad directive in format '%Y-%m-%dT%H:%M:%S%z'

Czy możesz dać jakiś wgląd?

questionAnswers(2)

yourAnswerToTheQuestion