Ошибка: значение типа «TimeOfDay» не может быть присвоено переменной типа «DateTime» - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь получить время от времени в этом формате Thrusday at 10:00pm until. Я нашел решение в Google использовать библиотеку intl от dart для форматирования даты для отображения в формате 10:00pm. но здесь проблема в том, что всякий раз, когда я пытаюсь поставить DataTime.now(), чтобы получить time picker, я получаю эту ошибку.

Ошибка: значение типа «TimeOfDay» нельзя присвоить переменной типа «DateTime».

Вот мой код

DateTime _currentTime = new DateTime.now();

  Future<Null> selectTime(BuildContext context) async {
    DateTime seletedTime = await showTimePicker(context: context, initialTime: _currentTime);
  }

Есть ли способ получить время в 12 hour clock time как-то так 10:00pm.

любая помощь будет отличной.

1 Ответ

0 голосов
/ 14 октября 2019

Вам нужно использовать:

TimeOfDay _currentTime = TimeOfDay.now();

Потому что вместо DateTime.

используется тип https://api.flutter.dev/flutter/material/showTimePicker.html, a TimeOfDay. нужно изменить вызов на следующий, чтобы все работало нормально:

TimeOfDay selectedTime = await showTimePicker(context: context, initialTime: _currentTime);

Есть ли способ получить время в 12-часовом часовом времени примерно так: 22:00. * 10101

Для второго вопроса вы можете использовать formatTimeOfDay из класса MaterialLocalizations. См. Следующее:

https://api.flutter.dev/flutter/material/MaterialLocalizations/formatTimeOfDay.html

И установите alwaysUse24HourFormat на false.

MaterialLocalizations localizations = MaterialLocalizations.of(context);
String formattedTime = localizations.formatTimeOfDay(selectedTime, alwaysUse24HourFormat: false);
...