# 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 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)