1 from types import StringTypes
5 from sfa.util.sfalogging import logger
8 """ Translate a string into a time using dateutil.parser.parse but make sure it's in UTC time and strip
9 the timezone, so that it's compatible with normal datetime.datetime objects.
11 For safety this can also handle inputs that are either timestamps, or datetimes
14 if isinstance (input, datetime.datetime):
15 logger.warn ("argument to utcparse already a datetime - doing nothing")
17 elif isinstance (input, StringTypes):
18 t = dateutil.parser.parse(input)
19 if t.utcoffset() is not None:
20 t = t.utcoffset() + t.replace(tzinfo=None)
22 elif isinstance (input, (int,float)):
23 return datetime.datetime.fromtimestamp(input)
25 logger.error("Unexpected type in utcparse [%s]"%type(input))