无法从Time Picker格式化时间

时间:2013-09-06 13:03:29

标签: android android-timepicker

目前正试图从时间选择器提醒器中获取两个不同的值,即selectedHour和reminderMin,这是selectedMin。我以为我工作得很好,但今天早上发现了另一个错误。

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();

            }
        });

这是我的时间选择器的代码。我不希望时间一起加入,因为我需要将小时值与分钟值分开存储。

我试过查找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 个答案:

答案 0 :(得分:0)

这是因为个人 hh mm 不是有效格式。尝试将分钟和小时值组合在一起,当您收到组合值时,请通过split()

分隔它们

e.g;

 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]);

答案 1 :(得分:0)

您想要什么输出? 如果它只是:

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;