date static method

String date(
  1. String date, {
  2. String format = "dd-mm-yyyy",
  3. String? apiFormat,
})

ទម្រង់កាលបរិច្ឆេទ ឧៈ "2021-06-29T13:15:36" បើខុសពីទម្រង់នេះសូមប្ដូរ apiFormat

apiFormat: សម្រាប់កំណត់លើទម្រង់កាលបរិច្ឆេទពី API ដែលខុសពីទម្រង់កាលបរិច្ឆេទខាងលើ "yyyy-MM-ddThh:mm:ss" លោកអ្នកត្រូវប្ដូរតាមទម្រង់កាលរិច្ឆេទលោកអ្នកវិញ ឧៈ "2021/06/29 13:15:36"

ដូចនេះ apiFormat: "yyyy/MM/dd hh:mm:ss" កាលបរិច្ឆេទខុសទម្រង់ វានឹងធ្វើឲ្យតម្លៃ ពេលវេលាចេញលទ្ធផលខុស

format: "ថ្ងៃdddd ទីdd ខែmmm ឆ្នាំyyyy ម៉ោង hr" លទ្ធផល (ថ្ងៃអង្គារ៍ ទី២៩ ខែមិថុនា ឆ្នាំ២០២១ ម៉ោង ០១:១៥ ល្ងាច)

format: "hr" 12 hour, "Hr" 24 hour

Implementation

static String date(
  String date, {
  String format = "dd-mm-yyyy",
  String? apiFormat,
}) {
  DateTime _date = DateTime.parse(date);
  if (apiFormat != null) {
    final f = DateFormat(apiFormat);
    _date = f.parse(date);
  }
  if (format.contains("dddd")) {
    format = format.replaceAll("dddd", _convertKhmerWeekDay(_date));
  }
  if (format.contains("ddd")) {
    format =
        format.replaceAll("ddd", _convertKhmerWeekDay(_date, isShort: true));
  }
  if (format.contains("dd")) {
    format = format.replaceAll("dd", khmerNumber(_date.day.toString()));
  }
  if (format.contains("mmmm")) {
    format = format.replaceAll("mmmm", _convertKhmerMonth(_date));
  }
  if (format.contains("mmm")) {
    format = format.replaceAll("mmm", _convertKhmerMonth(_date));
  }
  if (format.contains("mm")) {
    String month = (_date.month).toString();
    if (month.length == 1) {
      month = "០" + month;
    }
    format = format.replaceAll("mm", khmerNumber(month));
  }
  if (format.contains("yyyy")) {
    format = format.replaceAll("yyyy", khmerNumber(_date.year.toString()));
  }
  if (format.contains("yyy")) {
    format = format.replaceAll("yyy", khmerNumber(_date.year.toString()));
  }
  if (format.contains("yy")) {
    format = format.replaceAll(
        "yy", khmerNumber(_date.year.toString().substring(2)));
  }
  if (format.contains("hr")) {
    int hours = _date.hour;
    int minutes = _date.minute;
    String ampm = hours >= 12 ? 'ល្ងាច' : 'ព្រឹក';
    hours = hours % 12;
    hours = hours != 0 ? hours : 12; // the hour '0' should be '12'
    String strHour = hours < 10 ? "0" + hours.toString() : hours.toString();
    String strMinutes =
        minutes < 10 ? '0' + minutes.toString() : minutes.toString();
    String strTime = strHour + ':' + strMinutes + ' ' + ampm;
    format = format.replaceAll("hr", khmerNumber(strTime));
  }
  if (format.contains("Hr")) {
    int hours = _date.hour;
    int minutes = _date.minute;
    String strHour = hours < 10 ? "0" + hours.toString() : hours.toString();
    String strMinutes =
        minutes < 10 ? '0' + minutes.toString() : minutes.toString();

    String strTime = "$strHour:$strMinutes";
    format = format.replaceAll("Hr", khmerNumber(strTime));
  }
  return format;
}