getDateFormatStr static method

String getDateFormatStr(
  1. dynamic date, {
  2. String split = '-',
  3. String splitTime = ':',
  4. bool onlyDate = true,
  5. bool onlyTime = false,
  6. bool hasMlis = false,
  7. String? formatter,
})

时间格式化-将DateTime、String类型的数据转换为需要格式的时间字符

date 需要处理的数据 split 分隔符 splitTime 分隔符 - 时间 hasTime 是否需要时间 hasMlis 是否需要秒

Implementation

static String getDateFormatStr(
  dynamic date, {
  String split = '-',
  String splitTime = ':',
  bool onlyDate = true,
  bool onlyTime = false,
  bool hasMlis = false,
  String? formatter,
}) {
  DateTime? currentDate;
  if (date is String) {
    if (date.isNotEmpty) {
      currentDate = tryParse(date);
    }
  } else if (date is DateTime) {
    currentDate = date;
  }
  if (currentDate != null) {
    String mergedFormatter = '';
    if (formatter?.isNotEmpty ?? false) {
      mergedFormatter = formatter!;
    } else {
      final List<String> formatList = [];
      final List<String> baseDate = ['yyyy', split, 'MM', split, 'dd'];
      final List<String> baseTime = ['HH', splitTime, 'mm'];
      if (onlyTime) {
        formatList.addAll(baseTime);
      } else {
        formatList.addAll(baseDate);
        if (!onlyDate) {
          // 默认分组分隔符
          formatList.add(' ');
          formatList.addAll(baseTime);
        }
      }
      if (hasMlis) {
        formatList.addAll([splitTime, 's']);
      }
      mergedFormatter = formatList.join();
    }
    final format = DateFormat(mergedFormatter);
    return format.format(currentDate);
  }
  return '';
}