isValidIsoDate property

bool get isValidIsoDate

Check if the string is a valid ISO date

Implementation

bool get isValidIsoDate {
  try {
    final parts = split('-');
    if (parts.length != 3) return false;

    final year = int.tryParse(parts[0]);
    final month = int.tryParse(parts[1]);
    final day = int.tryParse(parts[2]);

    if (year == null || month == null || day == null) return false;
    if (month < 1 || month > 12) return false;
    if (day < 1 || day > 31) return false;

    // More thorough date validation
    try {
      final date = DateTime(year, month, day);
      // Check if the date components match (handles invalid dates like Feb 30)
      return date.year == year && date.month == month && date.day == day;
    } catch (_) {
      return false;
    }
  } catch (_) {
    return false;
  }
}