тип «Метка времени» не является подтипом типа «Дата-время»

#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());