Skip to content Skip to sidebar Skip to footer

How To Fix Valueerror Time Date Does Not Match Format When Converting From String To Datetime

Im trying to convert a string to datetime and keep getting the error: ValueError: time data 'Mon, 22 Apr 2019 17:04:38 +0200 (CEST)' does not match format '%a, %d %b %Y %H:%M:%S %z

Solution 1:

%Z is generally used for converting into string format. In any case, it is the offset, not the name of the time zone.

The rest of your code is valid, however:

s = "Mon, 22 Apr 2019 17:04:38 +0200"d = datetime.strptime(s, '%a, %d %b %Y %H:%M:%S %z')

Solution 2:

datetime only comes with the ability to parse UTC and whatever local time zone is listed in time.tzname. It can't match (CEST) because it doesn't know what timezone that is (It would also be redundant because you defined the timezone using the offset +0200).

You will need to implement your own (CEST) using datetime.tzinfo or by importing an external library like pytz or pendulum in order to parse (CEST) from a string into a datetime.timezone.

Also, don't forget to include parenthesis() in your match string.

Solution 3:

This code passes, however, I do not know what happens to 'CEST' once it is converted into the string.

from datetime importdatetimetz='CEST'
s = "Mon, 22 Apr 2019 17:04:38 +0200 " + tzd= datetime.strptime(s, '%a, %d %b %Y %H:%M:%S %z ' + tz)

Post a Comment for "How To Fix Valueerror Time Date Does Not Match Format When Converting From String To Datetime"