Skip to content

Instantly share code, notes, and snippets.

@gjcourt
Created July 19, 2011 22:41
Show Gist options
  • Save gjcourt/1093924 to your computer and use it in GitHub Desktop.
Save gjcourt/1093924 to your computer and use it in GitHub Desktop.
python datetime loader
def load_datetime(value):
from datetime import datetime
if type(value) is str:
import re
JAVASCRIPT_DATE = re.compile(r'^\d{4}(?:-\d{2}){2}T(?:\d{2}:){2}\d{2}$')
PYTHON_DATE = re.compile(r'^\d{4}(?:-\d{2}){2}\s(?:\d{2}:){2}\d{2}$')
PYTHON_DATE_MICROSECONDS = re.compile(r'^\d{4}(?:-\d{2}){2}\s(?:\d{2}:){2}\d{2}\.\d+$')
STRING_NUMBER = re.compile(r'^\d+(\.\d+)?$')
if JAVASCRIPT_DATE.match(value):
return datetime.strptime(value, '%Y-%m-%dT%H:%M:%S')
elif PYTHON_DATE.match(value):
return datetime.strptime(value, '%Y-%m-%d %H:%M:%S')
elif PYTHON_DATE_MICROSECONDS.match(value):
return datetime.strptime(value, '%Y-%m-%d %H:%M:%S.%f')
elif STRING_NUMBER.match(value):
return datetime.fromtimestamp(float(value))
else:
return None
elif type(value) is int or type(value) is float:
return datetime.fromtimestamp(value)
else:
return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment