#flutter #datetime #timestamp
Вопрос:
У меня есть несоответствие типов, когда я получаю элемент данных метки времени из документа Firestore, а затем пытаюсь преобразовать его в тип даты и времени и поместить в TextEditingController. Я пытаюсь заполнить форму приложения данными из документа firestore.
Вот скриншот экрана:
Вот код, который я использую для преобразования и назначения данных:
var dtDate = DateTime.fromMicrosecondsSinceEpoch(currentEvent.get('eventDate'));
eventDateController.text = DateFormat.yMMMd().format(dtDate).toString();
На той же странице я получаю дату и время из плагина datepicker, используя этот код (который работает).:
if (_date != null amp;amp; _date != _datePicked) {
setState(() {
eventDateController.text =
DateFormat("MM/dd/yyyy").format(_datePicked!);
eventProvider.changeeventdate(_datePicked);
_selectedDate = _datePicked;
//DateFormat("MM/dd/yyyy").format(_date));
});
}
This is the code for getting the time:
TimeOfDay _timePicked = await (showTimePicker(
context: context,
initialTime: new TimeOfDay.now()) as FutureOr<TimeOfDay>);
_dt = DateTime(_selectedDate!.year, _selectedDate!.month, _selectedDate!.day, _timePicked.hour, _timePicked.minute);
//if (_timePicked != null) {
setState(() {
eventStartTimeController.text = dateFormat.format(_dt); //_timePicked.format(context);
eventProvider.changeeventstarttime(_dt);
});
//}
},
Это ошибка, которую я получаю:
тип «Метка времени» не является подтипом типа «Дата-время»
Как мне это исправить?
Комментарии:
1. можете ли вы проверить
currentEvent.get('eventDate')
этоDateTime
илиTimeStamp
?2. Это временная метка, так как она исходит из документа Firestore.
Ответ №1:
Я, наконец, понял это с помощью нескольких других постов. Это и есть ответ:
eventDateController.text = DateFormat('EE MMddyyyy').format(currentEvent['eventDate'].toDate());