I want to show date and time picker together but I think no any widget or lib provides this feature in flutter. Any suggestion or solution ?
If you don't want to add extra packages, combine showDatePicker
and showTimePicker
.
import 'package:flutter/material.dart';
Future<DateTime?> showDateTimePicker({
required BuildContext context,
DateTime? initialDate,
DateTime? firstDate,
DateTime? lastDate,
}) async {
initialDate ??= DateTime.now();
firstDate ??= initialDate.subtract(const Duration(days: 365 * 100));
lastDate ??= firstDate.add(const Duration(days: 365 * 200));
final DateTime? selectedDate = await showDatePicker(
context: context,
initialDate: initialDate,
firstDate: firstDate,
lastDate: lastDate,
);
if (selectedDate == null) return null;
if (!context.mounted) return selectedDate;
final TimeOfDay? selectedTime = await showTimePicker(
context: context,
initialTime: TimeOfDay.fromDateTime(initialDate),
);
return selectedTime == null
? selectedDate
: DateTime(
selectedDate.year,
selectedDate.month,
selectedDate.day,
selectedTime.hour,
selectedTime.minute,
);
}
Try flutter_datetime_picker
here hope its help to you.
In this package you want to pick date and time both.
Try date_time_picker
package also.
Updated Answer:
You used flutter_cupertino_datetime_picker
and set the date format on your need
ElevatedButton(
onPressed: () {
dateTimePickerWidget(context);
},
child: Text('Pick Date-Time'),
),
method for dateTimePicker:
dateTimePickerWidget(BuildContext context) {
return DatePicker.showDatePicker(
context,
dateFormat: 'dd MMMM yyyy HH:mm',
initialDateTime: DateTime.now(),
minDateTime: DateTime(2000),
maxDateTime: DateTime(3000),
onMonthChangeStartWithFirstDate: true,
onConfirm: (dateTime, List<int> index) {
DateTime selectdate = dateTime;
final selIOS = DateFormat('dd-MMM-yyyy - HH:mm').format(selectdate);
print(selIOS);
},
);
}
Your Output:
16-Mar-2022 - 12:28
Result Screen for Widget ->
Result Screen for DateTimePicker ->
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With