Python - simplest and most coherent way to get timezone-aware current time in UTC?

前端 未结 3 1072
清歌不尽
清歌不尽 2020-12-10 23:10

datetime.now() doesn\'t appear to have timezone info attached. I want the current time in UTC. What do I do?

>>> from datetime import         


        
3条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-10 23:41

    In Python 3:

    datetime.now(timezone.utc)
    

    In Python 2.x there is no timezone object, but you can write your own:

    try:
        from datetime import timezone
    except ImportError:
        from datetime import tzinfo, timedelta
    
        class timezone(tzinfo):
            def __init__(self, utcoffset, name=None):
                self._utcoffset = utcoffset
                self._name = name
    
            def utcoffset(self, dt):
                return self._utcoffset
    
            def tzname(self, dt):
                return self._name
    
            def dst(self, dt):
                return timedelta(0)
    
        timezone.utc = timezone(timedelta(0), 'UTC')
    

    Then you can do datetime.now(timezone.utc) just like in Python 3.

提交回复
热议问题