toDateTime method

DateTime toDateTime([
  1. DateTime? defaultValue
])

Converts String to DateTime.

If String cannot be parsed after parsing with DateTime.tryParse, further parsing is attempted using the sequence "yyyyMMddHHmmss".

If parsing is not possible, defaultValue or DateTime.now is returned.

StringDateTimeに変換します。

StringDateTime.tryParseでパースしたのちパースできなければ、"yyyyMMddHHmmss"の並びでさらにパースを試みます。

パースできなかった場合、defaultValue、もしくはDateTime.nowを返します。

Implementation

DateTime toDateTime([DateTime? defaultValue]) {
  if (isEmpty) {
    return defaultValue ?? DateTime.now();
  }
  final dateTime = DateTime.tryParse(this);
  if (dateTime != null) {
    return dateTime;
  }
  final year = int.tryParse(substring(0, 4));
  final month = int.tryParse(substring(4, 6));
  final day = int.tryParse(substring(6, 8));
  final hour = int.tryParse(substring(8, 10));
  final minute = int.tryParse(substring(10, 12));
  final second = int.tryParse(substring(12, 14));
  if (year == null) {
    return defaultValue ?? DateTime.now();
  }
  if (month == null) {
    return DateTime(year);
  }
  if (day == null) {
    return DateTime(year, month);
  }
  if (hour == null) {
    return DateTime(year, month, day);
  }
  if (minute == null) {
    return DateTime(year, month, day, hour);
  }
  if (second == null) {
    return DateTime(year, month, day, hour, minute);
  }
  return DateTime(
    year,
    month,
    day,
    hour,
    minute,
    second,
  );
}