I have in a dataframe a column time in UTC time, and I want to convert it in local time. I did this code:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
# utc = datetime.utcnow()
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S')
utc = utc.replace(tzinfo=from_zone)
# Convert time zone
central = utc.astimezone(to_zone)
Then I save it in a text file in a string. So the string has this format:
2011-01-21 02:37:21+02:00
Then I load the text file in another program and I want to convert it in datetime format with local time zone
So I tried to use datetime.strptime()
with the %Z
parameter :
datetime.strptime(central,'%Y-%m-%d %H:%M:%S.%f Paris, Madrid')
Paris, Madrid
is what the command datetime.tzname(central)
gave me.
It is not working and I didn't find any explanations on how to use %Z
.
If you have any explanations, please help me.
The datetime.strptime()
function works a bit differently than this.
The first argument is the string with the time info, and the second argument is some type of formatting to it that allows the function to translate the string to a datetime object.
'.%f Paris, Madrid'
is making the function think these words appear in the string, so an error will rise when the formatting and the string do not match.
The correct code would be:
datetime.strptime(central,'%Y-%m-%d %H:%M:%S%z')