123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # encoding: utf-8
- """
- Timezone utilities
- Just UTC-awareness right now
- """
- # Copyright (c) Jupyter Development Team.
- # Distributed under the terms of the Modified BSD License.
- from datetime import tzinfo, timedelta, datetime
- # 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
- UTC = tzUTC()
- 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)
- def isoformat(dt):
- """Return iso-formatted timestamp
-
- Like .isoformat(), but uses Z for UTC instead of +00:00
- """
- return dt.isoformat().replace('+00:00', 'Z')
|