Search code examples
fluttertimetimepicker

How to format a TimePicker to 24 hours. "00:00" Flutter


I want to apply formatting to a time that the TimePicker gives me, since it gives me 13:30, but when I want to print it I get 1:30 PM, and I want it to give me 13:30 only.

I attach the code of the _pickTime:

//Función que muestra el Time Picker.
  _pickTime() async {
    TimeOfDay? timeRecord = await showTimePicker(
      context: context,
      initialTime: time.replacing(hour: time.hourOfPeriod),
      
    );
    if (timeRecord != null) {
      setState(() {
        finaltime = time.format(context);
      });
    }
  }

Solution

  • use intl package

             var df = DateFormat("h:mm a");
             var dt = df.parse(timeRecord!.format(context));
             print(DateFormat('HH:mm').format(dt));
    

    so your function would look like

      _pickTime() async {
    TimeOfDay? timeRecord = await showTimePicker(
      context: context,
      initialTime: time.replacing(hour: time.hourOfPeriod),
      
    );
      if (timeRecord != null) {
      setState(() {
           var df = DateFormat("h:mm a");
           var dt = df.parse(timeRecord!.format(context));
           var finaltime =  DateFormat('HH:mm').format(dt); 
          //print(finaltime)  
          // this will return 13:30 only
      });
    }
    

    }