'Validates that the input can be converted to a datetime. Returns a
Python datetime.datetime object.'

def to_python(self, value):

    if (value in validators.EMPTY_VALUES):
        return None
    if isinstance(value, datetime.datetime):
        return from_current_timezone(value)
    if isinstance(value, datetime.date):
        result = datetime.datetime(value.year, value.month, value.day)
        return from_current_timezone(result)
    if isinstance(value, list):
        if (len(value) != 2):
            raise ValidationError(self.error_messages[u'invalid'])
        if ((value[0] in validators.EMPTY_VALUES) and (value[1] in validators.EMPTY_VALUES)):
            return None
        value = (u'%s    %s' % tuple(value))
    result = super(DateTimeField, self).to_python(value)
    return from_current_timezone(result)
