Search code examples
androidandroid-timepicker

Android timepicker dialog returns no preceding zeros


Trying to figure out the timepicker dialog in Android. The problem I'm having is that when I select a time, and put it in my TextView field, all preceding zeros are removed. 06:05 is shown as 6:5. How can I keep the preceding zeros?

The code of my timepicker:

ic_BedtimePicker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Calendar mcurrentTime = Calendar.getInstance();
                int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                int minute = mcurrentTime.get(Calendar.MINUTE);
                TimePickerDialog mTimePicker;
                mTimePicker = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        editBedtime.setText( "" + selectedHour + ":" + selectedMinute);
                    }
                }, hour, minute, true);
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();
            }
        });

Solution

  • Create a new method checkDigit(int) in your activity that return you selected time with preceeding zeros.

    public String checkDigit(int number) {
            return number <= 9 ? "0" + number : String.valueOf(number);
        }
    

    and call this method from TimePicker Dialog onClick handler.

    editBedtime.setText( "" + checkDigit(selectedHour) + ":" + checkDigit(selectedMinute));