Я использую Flutters TimePicker
, чтобы пользователь мог выбрать время.
Здесь используется класс TimeOfDay
.
Мне нужно выделение в формате RFC 3339 (2022-06-24T01:23:45
)
Есть ли способ преобразовать его или мне нужно выбрать другой пакет?
Я знаю, что там также есть параметр даты, и текущий день будет тем, что я хочу вставить, не уверен, что это может быть автоматически заполнено текущей датой?
Когда я пытаюсь преобразовать его с помощью функции, я получаю
The argument type 'TimeOfDay' can't be assigned to the parameter type 'DateTime'.
Future<void> _selectTime(BuildContext context) async {
final TimeOfDay? timeOfDay = await showTimePicker(
context: context,
builder: (BuildContext context, Widget ?child) {
return Theme(
data: ThemeData(
primarySwatch: Colors.grey,
splashColor: Colors.white,
textTheme: TextTheme(
subtitle1: TextStyle(color: Colors.black),
button: TextStyle(color: Colors.black),
),
colorScheme: ColorScheme.light(
primary: Color(0xff2F2F2F),
),
child: child ??Text(""),
);
},
initialTime: selectedTime,
initialEntryMode: TimePickerEntryMode.dial,
);
if (timeOfDay != null && timeOfDay != selectedTime)
{
setState(() {
selectedTime = timeOfDay;
this._myDepTime = selectedTime.format(context);
});
}
}
Возможно ли преобразование в формат RFC 3339 или мне следует переключить пакет TimePicker на альтернативный стиль DateTime?
Спасибо
Решение было
final now = new DateTime.now();
final selectedTime = new DateTime(now.year, now.month, now.day, timeOfDay.hour, timeOfDay.minute
Это использует параметр DateTimes now
для заполнения части даты