I created a datetime that is unaware using the code below and I need to have it in UTC since the time is in "US/Eastern". I would like to make the datetime aware of EST first then convert to UTC.
import datetime
import pytz
from pytz import timezone
dt = "8/8/2013 4:05:03 PM"
dt = datetime.datetime.strptime(dt,"%m/%d/%Y %I:%M:%S %p")
unaware_est = dt.strftime("%Y-%m-%dT%H:%M:%S")
localtz = timezone('US/Eastern')
utc = localtz.localize(unaware_est)
Error Message:
Traceback (most recent call last):
File "/home/ubuntu/workspace/druidry-codebase/services/xignite/test.py", line 120, in <module>
quote_time = localtz.localize(quote_time)
File "/usr/local/lib/python2.7/dist-packages/pytz-2013b-py2.7.egg/pytz/tzinfo.py", line 303, in localize
if dt.tzinfo is not None:
AttributeError: 'str' object has no attribute 'tzinfo'
The localize
method takes a datetime
, not a string. So the call to strftime
should be removed.
import datetime
import pytz
from pytz import timezone
dt = "8/8/2013 4:05:03 PM"
unaware_est = datetime.datetime.strptime(dt,"%m/%d/%Y %I:%M:%S %p")
localtz = timezone('US/Eastern')
aware_est = localtz.localize(unaware_est)
This still doesn't give you UTC. If you want that, you need to follow it up with:
utc = aware_est.astimezone(pytz.utc)