Формат даты Dart / Flutter

#flutter #dart

#flutter #dart

Вопрос:

Я пытаюсь изменить формат строки даты, возвращаемой из API. Приведенная ниже строка ввода формата даты отлично работает в Java, но не в Dart.

  DateTime tempDate = new DateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aa")
          .parse(notification.createdat);
      final DateFormat formatter = DateFormat('EEE M/d/yy h:mm a');
      final String formatted = formatter.format(tempDate);
  

Вот исправленная ошибка:
введите описание изображения здесь

Комментарии:

1. Это может быть потому SEP , что все в верхнем регистре. Вы можете проверить это, просто поместив статическую строку с Sep указанием месяца в функцию синтаксического анализа. Проверьте правильный синтаксис здесь unicode-org.github.io/icu/userguide/format_parse/datetime /…

2. @Er1 Спасибо, это сработало. Я думаю, что другим было бы полезно, если бы вы могли добавить это в качестве ответа.

Ответ №1:

Это может быть потому SEP , что все в верхнем регистре. Вы можете проверить это, просто поместив статическую строку с Sep указанием месяца в функцию синтаксического анализа.

 DateTime tempDate = new DateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aa")
          .parse('30-Sep-20 12.50.18.518880 pm');
      final DateFormat formatter = DateFormat('EEE M/d/yy h:mm a');
      final String formatted = formatter.format(tempDate);
  

Проверьте правильный синтаксис здесь https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax

Ответ №2:

 DateTime tempDate = new DateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aa")
          .parse(notification.createdat);
      final DateFormat newDate = DateFormat('EEE M/d/yy h:mm a').format(tempDate);
      print("${newData.days}");