toTime static method

DateTime? toTime(
  1. String? s, {
  2. DateTime? defaultValue,
})

Implementation

static DateTime? toTime(
  String? s, {
  DateTime? defaultValue,
}) {
  if (defaultValue != null) {
    defaultValue = DateTime(0, 1, 1, defaultValue.hour, defaultValue.minute);
  }

  if (s == null || s == 'null' || s.isEmpty) {
    return defaultValue;
  }

  RegExp parseFormat = RegExp(r'^(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)');
  if (parseFormat.hasMatch(s)) {
    s = '${DateFormat('yyyyMMdd').format(DateTime(0))} $s';
  }

  DateTime? time = DateTime.tryParse(s);
  if (time != null) {
    time = DateTime(0, 1, 1, time.hour, time.minute);
  }

  return time ?? defaultValue;
}