dateTimeFormat static method

String dateTimeFormat(
  1. BuildContext context, {
  2. required Object? time,
  3. FormatFn? customFormat,
  4. HmsFormat? hmsAddFormat,
})

日期格式化: 且会根据不同国家显示不同的样式 默认格式:2023/10/06 12:56:34 customFormat格式是:日期格式化,DateFormat.yMd,DateFormat.Md,DateFormat.yMMMMd hmsAddFormat: 添加时分秒的格式化样式 time,可以是 DateTime类型,String,int类型为时间戳

Implementation

static String dateTimeFormat(
  BuildContext context, {
  required Object? time,
  FormatFn? customFormat,
  HmsFormat? hmsAddFormat,
}) {
  if (time == null) return '';
  if (time == '') return '';
  DateTime dateTime = DateTime.now();
  if (time is DateTime) {
    dateTime = time;
  } else if (time is String) {
    dateTime = DateTime.parse(time).toLocal();
  } else if (time is int) {
    if (time.toString().length == 10) {
      time = time * 1000;
    }
    dateTime = DateTime.fromMillisecondsSinceEpoch(time);
  }

  // 默认 2023/10/06 12:56:34
  if (hmsAddFormat == null && customFormat == null) {
    return DateFormat.yMd(
      HbCommonLocalizations.of(context).localeName,
    ).add_Hms().format(dateTime);
  }

  // 只格式化时分秒
  if (customFormat == null) {
    switch (hmsAddFormat) {
      case HmsFormat.h:
        return DateFormat.H(
          HbCommonLocalizations.of(context).localeName,
        ).format(dateTime);
      case HmsFormat.hm:
        return DateFormat.Hm(
          HbCommonLocalizations.of(context).localeName,
        ).format(dateTime);
      default:
        return DateFormat.Hms(
          HbCommonLocalizations.of(context).localeName,
        ).format(dateTime);
    }
  }

  // 只格式化年月日
  if (hmsAddFormat == null) {
    return customFormat(
      HbCommonLocalizations.of(context).localeName,
    ).format(dateTime);
  }

  // 格式化年月日和时分秒
  DateFormat dateFormatTem = customFormat(
    HbCommonLocalizations.of(context).localeName,
  );

  switch (hmsAddFormat) {
    case HmsFormat.h:
      return dateFormatTem.add_H().format(dateTime);
    case HmsFormat.hm:
      return dateFormatTem.add_Hm().format(dateTime);
    default:
      return dateFormatTem.add_Hms().format(dateTime);
  }
}