1 from types import StringTypes
6 from sfa.util.sfalogging import logger
9 """ Translate a string into a time using dateutil.parser.parse but make sure it's in UTC time and strip
10 the timezone, so that it's compatible with normal datetime.datetime objects.
12 For safety this can also handle inputs that are either timestamps, or datetimes
15 if isinstance (input, datetime.datetime):
16 logger.warn ("argument to utcparse already a datetime - doing nothing")
18 elif isinstance (input, StringTypes):
19 t = dateutil.parser.parse(input)
20 if t.utcoffset() is not None:
21 t = t.utcoffset() + t.replace(tzinfo=None)
23 elif isinstance (input, (int,float)):
24 return datetime.datetime.fromtimestamp(input)
26 logger.error("Unexpected type in utcparse [%s]"%type(input))
28 def epochparse(input):
29 return time.strftime("%Y-%d-%m-T%H:%M:%SZ", time.localtime(input))