Получить дату из строки и преобразовать в объект даты в Flutter Dart - PullRequest
0 голосов
/ 23 апреля 2020

Я много искал, но не смог найти хорошего решения. На самом деле, знаю код Javascript, чтобы решить мою проблему. Но я попробовал разные методы в дартс. Моя проблема в том, что я получаю расписание через API. И я получаю ответ как

05:30 (PTC)
13:10 (PTC)
17:20 (PTC)

И мне нужно получить это как

5:30 AM
1:10 PM
5:20 PM

Код, который я пробовал и работал в Javascript

     function tConvert (time) {
  time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
  if (time.length > 1) { // If time format correct
    time = time.slice (1);  // Remove full string match value
    time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM
    time[0] = +time[0] % 12 || 12; // Adjust hours
  }
  return time.join (''); // return adjusted time or original string
}

//called as
$("#time").html(tConvert(time));

Еще одна проблема здесь, его (PT C) когда-то изменен на другие коды, такие как (BST) (IST) et c. Так что просто замена (PT C не работает).

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Я решил проблемы после долгих поисков. Поэтому я хотел поделиться своим кодом. Спасибо @hiwa Jalal за попытку помочь.

Были предприняты шаги:

  • Удалены все строки с RegEx String removeABC = removebrace2.replaceAll(RegExp(r'[a-zA-Z]'), '');
  • Удалены пробелы и скобки с похожим регистром .
  • Конвертировал мой результат в DateFormat
 DateTime gotFinalTime = intl.DateFormat('hh:mm').parse(removeABC);
                 String formattedTime = intl.DateFormat.jm().format(gotFinalTime);

                 print(formattedTime);

Это сработало для меня. Спасибо

0 голосов
/ 23 апреля 2020

добавьте intl в ваш проект

, затем используйте DateFormat.jm().format(yourTime)

для получения дополнительной информации о DateFormat class проверьте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...