Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How we can use time and date picker together in flutter?

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 ?

like image 903
Muhammad Umair Saqib Avatar asked Sep 14 '25 15:09

Muhammad Umair Saqib


2 Answers

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,
        );
}

like image 135
Argus Waikhom Avatar answered Sep 16 '25 07:09

Argus Waikhom


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 -> image1

Result Screen for DateTimePicker -> enter image description here

like image 23
Ravindra S. Patil Avatar answered Sep 16 '25 08:09

Ravindra S. Patil