Returns a Validation that checks a value as a date.

def is_date(property_name, *, format=None, present_optional=False, message=None):
    """Returns a Validation that checks a value as a date."""
    # NOTE: Not currently using format param
    def check(val):
      """Checks that a value can be parsed as a date."""
      if val is None:
        return present_optional
      else:
        is_date, _ = util.try_parse_date(val)
        return is_date

    return Validation(check, property_name, message)