tz.py
48 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
MinRK
|
r11144 | # encoding: utf-8 | ||
""" | ||||
Timezone utilities | ||||
Just UTC-awareness right now | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Copyright (C) 2013 The IPython Development Team | ||||
# | ||||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
from datetime import tzinfo, timedelta, datetime | ||||
#----------------------------------------------------------------------------- | ||||
# Code | ||||
#----------------------------------------------------------------------------- | ||||
# constant for zero offset | ||||
ZERO = timedelta(0) | ||||
class tzUTC(tzinfo): | ||||
"""tzinfo object for UTC (zero offset)""" | ||||
def utcoffset(self, d): | ||||
return ZERO | ||||
def dst(self, d): | ||||
return ZERO | ||||
Matthias Bussonnier
|
r28167 | |||
UTC = tzUTC() # type: ignore[abstract] | ||||
MinRK
|
r11144 | |||
def utc_aware(unaware): | ||||
"""decorator for adding UTC tzinfo to datetime's utcfoo methods""" | ||||
def utc_method(*args, **kwargs): | ||||
dt = unaware(*args, **kwargs) | ||||
return dt.replace(tzinfo=UTC) | ||||
return utc_method | ||||
utcfromtimestamp = utc_aware(datetime.utcfromtimestamp) | ||||
utcnow = utc_aware(datetime.utcnow) | ||||