diff --git a/src/python/dm/common/utility/timeUtility.py b/src/python/dm/common/utility/timeUtility.py index 5300ff12bcc02761414fb8bf0f96f2008136bc78..f3e0d1bde95e188a1fef422583525dec974487fb 100755 --- a/src/python/dm/common/utility/timeUtility.py +++ b/src/python/dm/common/utility/timeUtility.py @@ -1,6 +1,11 @@ #!/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 @@ -23,4 +28,19 @@ class TimeUtility: """ 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')