toDatetime method

DateTime? toDatetime({
  1. bool? isUtc,
  2. String? format,
})

转换为时间

Implementation

DateTime? toDatetime({bool? isUtc, String? format}) {
  // 尝试使用标准解析
  DateTime? dateTime = DateTime.tryParse(this);

  // 如果标准解析失败,尝试使用自定义格式解析
  if (dateTime == null && format != null) {
    dateTime = _parseDateTime(this, format);
  } else if (dateTime == null) {
    // 尝试使用预定义格式解析
    for (final formatPattern in DateTimeFormatter.defaultFormats.values) {
      dateTime = _parseDateTime(this, formatPattern);
      if (dateTime != null) {
        break;
      }
    }
  }

  // 处理时区
  if (dateTime != null) {
    if (isUtc == true) {
      dateTime = dateTime.toUtc();
    } else if (isUtc == false) {
      dateTime = dateTime.toLocal();
    }
  }

  return dateTime;
}