Проблема в том, что DateTime.parse
Дартс принимает только до шести цифр дробных секунд, а ваш ввод имеет семь.
... и затем при желании«.с последующим дробным разделением от одной до шести цифр.
Вы можете дезинфицировать ваш ввод до шести цифр, используя что-то вроде:
String restrictFractionalSeconds(String dateTime) =>
dateTime.replaceFirstMapped(RegExp(r"(\.\d{6})\d+"), (m) => m[1]);
Возможно, функция разбора должна просто принятьбольше цифр, даже если они не влияют на значение.