Python: timezone.localize() not working

前端 未结 2 1849
孤街浪徒
孤街浪徒 2021-01-07 22:13

I am having some issues getting timezone.localize() to work correctly. My goal is to grab today\'s date and convert it from CST to EST. Then finally format the

相关标签:
2条回答
  • 2021-01-07 22:24

    Use cst.localize to make a naive datetime into a timezone-aware datetime.

    Then use astimezone to convert a timezone-aware datetime to another timezone.

    import pytz
    import datetime
    
    est = pytz.timezone('US/Eastern')
    cst = pytz.timezone('US/Central')
    curtime = cst.localize(datetime.datetime.now())
    curtime = curtime.astimezone(est)
    
    0 讨论(0)
  • 2021-01-07 22:40

    .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)
    
    0 讨论(0)
提交回复
热议问题