I've got a datetime as a string (2016-12-31 23:59
), from which I know it was defined in UTC. I now want to get the timedelta using Python. The machine I'm doing this on will normally be in the CEST time zone (Europe/Amsterdam
), but this might not always be the case and therefore I don't want to hardcode this time zone in the code.
For local timezones this would work great:
date_str = '2016-12-31 23:59'
print datetime.now() - datetime.strptime(date_str, '%Y-%m-%d %H:%M')
this obviously isn't correct though, but changing it to use utcnow()
is also not correct:
print datetime.utcnow() - datetime.strptime(date_str, '%Y-%m-%d %H:%M')
This doesn't work correctly because now the datetime resulting from strptime is in the timezone of the machine this code is running on, while the utcnow() is in UTC.
I found this SO answer, but that assumes you know the timezone of the machine the code is running on, which I don't.
Is there a way that I can add the UTC timezone to the datetime
object which I get from datetime.strptime()
so that I can compare it with utcnow()
? All tips are welcome