def parse_imslp_date(year, month, day):
    """Return a date from imslp. Only return if all 3 components exist, and are integers
    This prevents parsing items that only have some components (e.g. yyyy-mm), or approximate
    values (e.g. c 1600)"""
    if year and month and day:
        try:
            year = int(year)
            month = int(month)
            day = int(day)
            return f"{year:d}-{month:02d}-{day:02d}"
        except ValueError:
            return None