helper2 method

DateTime helper2(
  1. String date
)

Implementation

DateTime helper2(String date) {
  DateTime newDate = DateTime.now();
  date = date.toLowerCase();
  if (date.contains('mon')) {
    Date[0] = 1;
  } else if (date.contains('tue')) {
    Date[0] = 2;
  } else if (date.contains('wed')) {
    Date[0] = 3;
  } else if (date.contains('thu')) {
    Date[0] = 4;
  } else if (date.contains('fri')) {
    Date[0] = 5;
  } else if (date.contains('sat')) {
    Date[0] = 6;
  } else if (date.contains('sun')){
    Date[0] = 7;
  }
  else{
    Date[0]=0;
  }
  String output = date.replaceAll(
    RegExp(r'\b(mon|tue|tues|wed|thu|thur|thurs|fri|sat|sun|monday|tuesday|wednesday|thursday|friday|saturday|sunday)\b', caseSensitive: false),
    '',
  ).trim();

  print(output);
  String updatedDate = output.replaceAll(RegExp(r'[ ,\-]+'), '/');
  final datePattern = RegExp(r'(\d{4})/(\d{2})/(\d{2})');

  final match = datePattern.firstMatch(updatedDate);

  // If a date in the format YYYY/MM/DD is found
  if (match != null) {
    // Extract year, month, and day from the matched pattern
    final year = match.group(1);
    final month = match.group(2);
    final day = match.group(3);

    // Reverse the date format to DD/MM/YYYY
    final reversedDate = '$day/$month/$year';

    // Replace the original date format with the reversed format
    updatedDate = updatedDate.replaceFirst(datePattern, reversedDate);
  }

  List<String> formats = [
    'dd/MM/yyyy', 'MM/dd/yyyy', 'yyyy-MM-dd', 'yyyy/MM/dd', 'dd-MM-yyyy',
    'dd.MM.yyyy', 'yyyy.MM.dd', 'dd MMM yyyy', 'MMM dd, yyyy', 'MMMM dd, yyyy',
    'dd MMMM yyyy', 'EEE, MMM d, ''yy', 'EEE, dd MMM yyyy', 'EEE, dd-MMM-yyyy',
    'EEE MMM dd HH:mm:ss yyyy', 'yyyyMMdd', 'MMddyyyy', 'ddMMyyyy', 'dd/MM/yy',
    'MM/dd/yy', 'yy/MM/dd', 'yy-MM-dd', 'yyyy MMM dd', 'yyyy, MMM dd',
    'dd MMM, yyyy', 'dd MMMM, yyyy', 'yyyy-MM-ddTHH:mm:ss', 'yyyyMMddTHHmmss',
    'yyyy/MM/dd HH:mm:ss', 'MM-dd-yyyy HH:mm', 'yyyy-MM-dd HH:mm:ss', 'MM/dd/yyyy HH:mm:ss',
    'dd-MM-yyyy HH:mm:ss', 'dd/MM/yyyy HH:mm:ss', 'dd.MM.yyyy HH:mm:ss',
    'yyyy-MM-dd HH:mm:ss.SSS', 'dd MMM yyyy HH:mm:ss', 'MMM dd yyyy hh:mm a',
    'yyyy-MM-ddTHH:mm:ssZ', 'yyyy-MM-ddTHH:mm:ss.SSSZ', 'EEE, dd MMM yyyy HH:mm:ss zzz',
    'EEEE, MMMM d, yyyy', 'EEEE, dd MMMM yyyy', 'EEEE, d MMM yyyy', 'EEE, MMM dd, yyyy',
    'EEEE, dd/MM/yyyy', 'EEEE, MM/dd/yyyy', 'EEEE, yyyy-MM-dd', 'EEEE, dd-MM-yyyy',
    'EEEE, dd.MM.yyyy', 'EEEE, yyyy.MM.dd', 'EEEE, dd MMMM yyyy', 'EEEE, MMMM d, yyyy',
  ];

  DateTime? parsedDate;

  for (String format in formats) {
    try {
      final dateFormat = DateFormat(format);
      parsedDate = dateFormat.parse(updatedDate, true); // `true` for UTC
      break;
    } catch (e) {
      // Continue trying with the next format
      continue;
    }
  }

  if (parsedDate == null) {
    print("Unable to parse date: $date");
    print(Date[0]);
    return newDate; // Returning the current date in case of error
  }

  print(parsedDate);
  return parsedDate;
}