#!/usr/bin/env python import time import pytz import datetime from tzlocal import get_localzone from dm.common.exceptions.invalidArgument import InvalidArgument class TimeUtility: @classmethod def getCurrentGMTimeStamp(cls): """ Formats GMT timestamp. """ return time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(time.time())) @classmethod def formatGMTimeStamp(cls, t): """ Format GMT timestamp. """ return time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(t)) @classmethod def getCurrentLocalTimeStamp(cls): """ Formats local timestamp. """ return time.strftime('%Y/%m/%d %H:%M:%S %Z', time.localtime(time.time())) @classmethod def formatLocalTimeStamp(cls, t): """ Formats local timestamp. """ return time.strftime('%Y/%m/%d %H:%M:%S %Z', time.localtime(t)) @classmethod def toDateTime(cls, t, format): if not t: return None tz = get_localzone() try: dt = datetime.datetime.strptime(t, format) except Exception, ex: raise InvalidArgument('Cannot parse input: %s' % ex) return tz.localize(dt, is_dst=None) ####################################################################### # Testing. if __name__ == '__main__': print TimeUtility.toDateTime('2015-01-03', '%Y-%m-%d')