make sure datetime_to_epoch() returns ints
[sfa.git] / sfa / util / sfatime.py
index 478c5be..34f4dce 100644 (file)
@@ -13,7 +13,14 @@ the timezone, so that it's compatible with normal datetime.datetime objects.
 
 For safety this can also handle inputs that are either timestamps, or datetimes
 """
-    
+    # perpare the input for the checks below by
+    # casting strings ('1327098335') to ints
+    if isinstance(input, StringTypes):
+        try:
+            input = int(input)
+        except ValueError:
+            pass
+          
     if isinstance (input, datetime.datetime):
         logger.warn ("argument to utcparse already a datetime - doing nothing")
         return input
@@ -34,7 +41,7 @@ def datetime_to_utc(input):
     return time.gmtime(datetime_to_epoch(input))    
 
 def datetime_to_epoch(input):
-    return time.mktime(input.timetuple())
+    return int(time.mktime(input.timetuple()))