parseDate static method

DateTime parseDate(
  1. String value,
  2. String pattern
)

Parses a DateTime using a supported pattern.

Implementation

static DateTime parseDate(String value, String pattern) {
  if (pattern == 'yyyy-MM-dd') {
    final RegExp regExp = RegExp(r'^(\d{4})-(\d{2})-(\d{2})$');
    final RegExpMatch? match = regExp.firstMatch(value);
    if (match == null) {
      throw FormatException(
        'Invalid date value for pattern yyyy-MM-dd',
        value,
      );
    }

    final int year = int.parse(match.group(1)!);
    final int month = int.parse(match.group(2)!);
    final int day = int.parse(match.group(3)!);
    return DateTime(year, month, day);
  }

  if (pattern == 'iso8601') {
    return DateTime.parse(value);
  }

  throw UnsupportedError('Unsupported date format pattern: $pattern');
}