Не могу отформатировать время из Time Picker

В настоящее время пытаюсь получить два разных значения из средства выбора времени напоминания о часах, которое является выбранным часом и напоминанием, которое является выбранным мином. Думал, у меня все работает отлично, но сегодня утром обнаружил еще одну ошибку.

eReminderTime.setOnClickListener(new 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(AddPayment.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {



                        reminderHour = selectedHour;
                        reminderMin = selectedMinute;


                        if (selectedHour < 10)
                        {
                            if(selectedMinute == 0)
                            {
                                eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
                            }
                            else if(selectedMinute < 10)
                            {
                                eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
                            }
                            else
                            {
                                eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
                            }
                        }

                        if (selectedHour == 0)
                        {
                            if(selectedMinute == 0)
                            {
                                eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
                            }
                            else if(selectedMinute < 10)
                            {
                                eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
                            }
                            else
                            {
                                eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
                            }
                        }

                        if(selectedMinute == 0)
                        {
                            eReminderTime.setText("" + selectedHour + ":00" + selectedMinute);
                        }
                        if(selectedMinute < 10)
                        {
                            eReminderTime.setText("" + selectedHour + ":0" + selectedMinute);
                        }
                        else
                        {
                            eReminderTime.setText( "" + selectedHour + ":" + selectedMinute);
                        }


                    }
                }, hour, minute, true);

                mTimePicker.setTitle("Select Time");
                mTimePicker.show();

            }
        });

Это код для моего Time Picker. Я не хочу, чтобы время объединялось все вместе, потому что мне нужно, чтобы значение часа хранилось отдельно от значения минуты.

Я попытался найти SimpleDateFormat, но не смог заставить его работать. Это код, который я пробовал

                    SimpleDateFormat simpleHour = new SimpleDateFormat("kk");
                    SimpleDateFormat simpleMin = new SimpleDateFormat("mm");

                    formatHour = simpleHour.format(selectedHour);
                    formatMin = simpleMin.format(selectedMinute);

                    reminderHour = Integer.parseInt(formatHour);
                    reminderMin = Integer.parseInt(formatMin);

                    Toast.makeText(getApplicationContext(), formatHour, 0).show();
                    Toast.makeText(getApplicationContext(), formatHour, 0).show();

2 ответа

Это потому, что отдельные чч и мм не являются допустимыми форматами. Попробуйте объединить значения минут и часов вместе, и когда вы получите объединенное значение, разделите их с помощью split()

например;

 SimpleDateFormat simpleHour= new SimpleDateFormat("hh:mm");
 String strTime = sdf.format(new Date());
 String[] pieces=strTime.split(":"); 
 Log.i("Hour: ",pieces[0]);
 Log.i("Miniute: ",pieces[1]);

Какой выход вы хотите именно? Если это просто что-то вроде:

01:32

Тогда проще создать строку самостоятельно, чем беспокоиться о форматах даты и т. Д.

//Add leading zeros if required
String hours = (String) ((selectedHour < 10) ? "0" + selectedHour 
                                             : Integer.toString(selectedHour));
String minutes = (String) ((selectedMinute < 10) ? "0" + selectedMinute 
                                             : Integer.toString(selectedMinute));
String prettyTime = hours + ":" + minutes;
Другие вопросы по тегам