Search code examples
javaandroidtimepickerdialog

Wrong time selected with timepickerdialog


I am using below code for getting time from user. Everything is working fine except if user select 15 in 24 hours format view, final output comes at 3 AM, and vice versa. I read many blogs but did not get clear solution to sort. Can someone help. Here is the code:

final TimePickerDialog.OnTimeSetListener tf = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int i, int i1) {
            calendar.set(Calendar.HOUR, i);
            calendar.set(Calendar.MINUTE, i1);
            String myFormat = "hh:mm a"; //In which you need put here
            SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
            timefrom.setText(sdf.format(calendar.getTime()));
        }
    };

Here is the code when time is set on click:

  timefrom.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new TimePickerDialog(HireActivity.this, tf,
                        calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), true).show();
            }
        });

I tried with 122 Hours view format too and here also if user select 5 AM, final output comes as 6 PM and vice versa.


Solution

  • use HOUR_OF_DAY

     new TimePickerDialog(HireActivity.this, tf,
               calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();