Python: timezone.localize() not working

.localize() takes a naive datetime object and interprets it as if it is in that timezone. It does not move the time to another timezone. A naive datetime object has no timezone information to be able to make that move possible.

You want to interpret now() in your local timezone instead, then use .astimezone() to interpret the datetime in another timezone:

est = timezone('US/Eastern')
cst = timezone('US/Central')
curtime = cst.localize(datetime.datetime.now())
est_curtime = curtime.astimezone(est).strftime("%a %b %d %H:%M:%S %Z %Y")

def run(self):
    print("%s says Hello World at time: %s" % (self.getName(), est_curtime))

Leave a Comment