Search code examples
androidtimepicker

How do I print the zeros of hours and minutes that are single digits?


When I want to print in editText, it may be due to the time difference in the dialog, it is 3 hours behind my current time. I cannot print the zero to the left of the hours or minutes I selected.

end_time_time.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        final Calendar myCalender = Calendar.getInstance();
        int hour = myCalender.get(Calendar.HOUR_OF_DAY);
        int minute = myCalender.get(Calendar.MINUTE);

        TimePickerDialog.OnTimeSetListener myTimeListener = new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                if (view.isShown()) {
                    myCalender.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    myCalender.set(Calendar.MINUTE, minute);
                    end_time.setText( hourOfDay + ":" + minute);
                }
            }
        };
        TimePickerDialog timePickerDialog = new TimePickerDialog(Event.this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar, myTimeListener, hour, minute, true);
        timePickerDialog.setTitle(R.string.time_select);
        timePickerDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
        timePickerDialog.show();
    }
});

Solution

  • How about a simple string manipulation:

    String sMinute = String.valueOf(minute);
    if(minute < 10) sMinute = "0" + sMinute;
    String sHourOfDay = String.valueOf(hourOfDay);
    if(hourOfDay < 10) sHourOfDay = "0" + sHourOfDay;
    end_time.setText( sHourOfDay + ":" + sMinute);