【发布时间】:2021-09-18 07:07:19
【问题描述】:
当我从 Firestore 文档中获取时间戳数据元素然后尝试将其转换为 DateTime 类型并将其放入 TextEditingController 时,我遇到了类型不匹配。我正在尝试使用 firestore 文档中的数据填充应用程序表单。
这是屏幕截图:
这是我用来转换和分配数据的代码:
var dtDate = DateTime.fromMicrosecondsSinceEpoch(currentEvent.get('eventDate'));
eventDateController.text = DateFormat.yMMMd().format(dtDate).toString();
在同一页面上,我使用以下代码(有效)从日期选择器插件中获取日期和时间:
if (_date != null && _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);
});
//}
},
这是我得到的错误:
类型“时间戳”不是类型“日期时间”的子类型
我该如何解决这个问题?
【问题讨论】:
-
你能查出
currentEvent.get('eventDate')是DateTime还是TimeStamp? -
这是一个时间戳,因为它来自 Firestore 文档。
标签: flutter datetime timestamp