def _fuzzy_date_formatter(date, format='%d-%m-%Y'):
    """
    Dateconverter to convert date or datetime objects to strings in a specific format

    Implemented because of the problems of datetime.strftime method with years before 1900
    :param date:
    :param format: The format to print the date in. (must be a predefined format)
                    '%d-%m-%Y' or '%m-%Y' or '%Y'
    :return: The formatted date, eg. `07-09-2014`
    """
    if format == '%d-%m-%Y':
        return '{0.day:02d}-{0.month:02d}-{0.year:4d}'.format(date)
    elif format == '%m-%Y':
        return '{0.month:02d}-{0.year:4d}'.format(date)
    elif format == '%Y':
        return '{0.year:4d}'.format(date)
    else:
        return '{0.day:02d}-{0.month:02d}-{0.year:4d}'.format(date)
