Android Can';从时间选择器格式化时间

Android Can';从时间选择器格式化时间,android,android-timepicker,Android,Android Timepicker,当前正在尝试从时间选择器提醒小时(selectedHour)和提醒分钟(selectedMin)获取两个不同的值。我以为它工作得很好,但今天早上又发现了一个错误 eReminderTime.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method s

当前正在尝试从时间选择器提醒小时(selectedHour)和提醒分钟(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();

            }
        });

这是因为单个hhmm格式无效。尝试将分钟和小时值组合在一起,当收到组合值时,通过
split()

e、 g


你到底想要什么样的输出? 如果是这样的话:

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;
//如果需要,添加前导零
字符串小时数=(字符串)((selectedHour<10)?“0”+selectedHour
:Integer.toString(selectedHour));
字符串分钟数=(字符串)((selectedMinute<10)?“0”+selectedMinute
:Integer.toString(selectedMinute));
字符串prettyTime=小时+“:”+分钟;

编辑了我的帖子,最初是kk表示小时,这是SimpleDataFormatWith的Java页面中显示的,kk表示小时,mm表示分钟,我打印了00,01,00,01,我想如果你把hh或hh放进去会怎么样?是的,24小时输出hh:mm,所以下午5点应该是17:00。代码中的“?”是什么意思?它是“三元运算符”。基本上,您可以将
理解为“如果前面的表达式为真,则值为”,将
理解为“否则值为”。这将根据需要生成24小时字符串形式的时间
 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]);
//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;