java - Android 时间选择器格式

标签 java android timepicker android-timepicker

我正在使用TimePicker,在选择器中它以24小时格式显示时间,这很好,但是当我选择时...

获取 - 下午 9:5

要求 1 - 09:05 PM

要求 2 - 21:05

  case DIALOG_TIME:
    final Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);

    // Create a new instance of TimePickerDialog and return it
    return new TimePickerDialog(this, lisTime, hour, minute,
            DateFormat.is24HourFormat(FormActivity.this));

   .......


    TimePickerDialog.OnTimeSetListener lisTime = new TimePickerDialog.OnTimeSetListener() {

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            // TODO Auto-generated method stub
            String hour = "";
            String meridiem = "";
            Calendar datetime = Calendar.getInstance();
            datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            datetime.set(Calendar.MINUTE, minute);

            if (datetime.get(Calendar.AM_PM) == Calendar.AM)
                meridiem = "AM";
            else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
                meridiem = "PM";

            hour = (datetime.get(Calendar.HOUR) == 0) ?"12":String.valueOf(datetime.get(Calendar.HOUR));
            editTime.setText(hour + ":" + String.valueOf(minute) + " " + meridiem);
        }
    };

所以我必须在代码中进行更改才能完成此任务!

最佳答案

对于要求 1:使用以下代码:

String date="9:5 PM";

        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("hh:mm aa",Locale.getDefault());

        try {
            Log.e("",""+new SimpleDateFormat("HH:mm",Locale.getDefault()).format(simpleDateFormat.parse(date)));

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

对于要求 2:使用以下代码:

 private String pad(int value){

            if(value<10){
                return "0"+value;
            }


            return ""+value;            
        }

编辑:

替换下面的行

            editTime.setText(hour + ":" + String.valueOf(minute) + " " + meridiem);

String date=pad(Integer.parseInt(hour)) + ":" + pad(minute) + " " + meridiem;

         SimpleDateFormat simpleDateFormat=new SimpleDateFormat("hh:mm aa",Locale.getDefault());

        try {
            editTime.setText(""+new SimpleDateFormat("HH:mm",Locale.getDefault()).format(simpleDateFormat.parse(date)));

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

关于java - Android 时间选择器格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711799/

相关文章:

java - 如何从 Runtime.getRuntime.exec() 启动 Haskell 进程?并进行互动交流?

java - 将音频样本字节数组更改为频率

java - 处理今天和现在的时间选择器之前的几天和几小时

android - IntentService 响应死的 ResultReceiver

android - 如何自定义一个TimePickerDialog?

android - 来自 Android 开发人员的 Timepicker 不允许静态

java - 标识 'chartBean' 未引用 MethodExpression 实例

java - Activemq中如何在不创建队列的情况下获取消息

android - chromecast sendMessage 中的 IllegalStateException

java - 想要在播放音频剪辑后移动下一个 Activity (请参见图片)