#parsing #dart #flutter #datetime-parsing #aqueduct
#синтаксический анализ #дротик #флаттер #datetime-синтаксический анализ #акведук
Вопрос:
да, да, хорошие люди, я действительно смущен поведением DateTime.parse();
на dartpad это работает
void main() {
const String _iso8601 = '2019-04-01T08:30:00';
final DateTime _date = DateTime.parse(_iso8601);
print(_date.toIso8601String());
}
но в flutter этого не делает, но это делает
const String _iso8601 = '2019-04-01T08:30:00.000';
final DateTime _date = DateTime.parse(_iso8601);
Сейчас я в акведуке, и ни одна из этих работ, включая это
String _iso8601 = '2019-04-01T08:30:00Z';
пожалуйста, обратите внимание, что с «не сработало» я не имею в виду, что он возвращает ошибку,
а просто значение null.
[правка: исправление
когда я издеваюсь над строкой вместо того, чтобы отображать ее из тела запроса, она возвращает
Произошло исключение. FormatException (null)
но опять же, я использую Iso8601]
Если у вас есть некоторый опыт в этой ситуации, мне могла бы понадобиться помощь.
[редактировать: обратите внимание, что aqueduct работает на dart 2.0]
Заранее благодарю вас, Франческо
Ответ №1:
Примеры принятых строк:
"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456z"
"2012-02-27 13:27:00,123456z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
" 20120227"
"2012-02-27T14Z"
"2012-02-27T14 00:00"
"-123450101 00:00:00 Z": in the year -12345.
"2002-02-27T14:00:00-0500": Same as "2002-02-27T19:00:00Z"
Комментарии:
1. да, это не похоже на проблему, я просмотрел документы, самое близкое к тому, что я получаю от API, — это последнее, которое я использовал с буквой «Z» в конце, я пробовал с миллисекундами «.000» … ничего не меняется
2. сделайте наоборот, создайте дату в flutter и распечатайте toIso8601String, чтобы увидеть, как она выглядит
3. в flutter и dartpad возвращает это «‘2019-04-01T08:30:00.000′», что согласуется с поведением, наблюдаемым в flutter (darpad еще более гибкий, по причине, которую я не понимаю); Я не проверял aqueduct, но я предполагаю, что он должен возвращать то же самое… но поскольку я не анализирую его, я мог бы взглянуть