Converting an un-aware timestamp into an aware timestamp for UTC conversion

python, pytz, timezone

Solution

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)

Problem

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' ```

Original source