12 小时制时间选择器 android

12 hour format timepicker android

我有一个工作正常的时间选择器。但它是 24 小时格式。我希望它采用 12 小时格式。我找不到可能的解决方案。我当前的代码片段是:

Calendar mcurrentTime = Calendar.getInstance();
            final int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
            int minute = mcurrentTime.get(Calendar.MINUTE);
            TimePickerDialog mTimePicker;
            mTimePicker = new TimePickerDialog(AddJob.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                    ////
                }
            }, hour, minute, true);
            mTimePicker.setTitle("Select Time");
            mTimePicker.show();

提前致谢。

编辑: 我可以在日期 selection 之后查看子午线。但我希望用户 select 子午线。

更新: android 问题如何与 javascript 问题重复?有人对此投了反对票..!

private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // TODO Auto-generated method stub
        hour = hourOfDay;
        minutes = minute;
        String timeSet = "";
        if (hour > 12) {
          hour -= 12;
          timeSet = "PM";
        } else if (hour == 0) {
          hour += 12;
          timeSet = "AM";
        } else if (hour == 12){
          timeSet = "PM";
        }else{
          timeSet = "AM";
        }

        String min = "";
        if (minutes < 10)
         min = "0" + minutes ;
        else
         min = String.valueOf(minutes);

        String mTime = new StringBuilder().append(hour).append(':')
        .append(min ).append(" ").append(timeSet).toString();

    }
};

你必须像下面那样做试试这个。

private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // TODO Auto-generated method stub
        hour = hourOfDay;
        minutes = minute;
        String timeSet = "";
        if (hour > 12) {
          hour -= 12;
          timeSet = "PM";
        } else if (hour == 0) {
          hour += 12;
          timeSet = "AM";
        } else if (hour == 12){
          timeSet = "PM";
        }else{
          timeSet = "AM";
        }

        String min = "";
        if (minutes < 10)
         min = "0" + minutes ;
        else
         min = String.valueOf(minutes);

        String aTime = new StringBuilder().append(hour).append(':')
        .append(min ).append(" ").append(timeSet).toString();
        et1.setText(aTime);
    }
};

更改您的 TimePickerDialog 通话:

您的密码是:

mTimePicker = new TimePickerDialog(AddJob.this,
          new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker,
                       int selectedHour, int selectedMinute) {
                    ////
                }
            }, hour, minute, true);

将最后一个参数从 true 更改为 false

因为 TimePickerDialog 构造函数语法是:

TimePickerDialog(Context context,
        TimePickerDialog.OnTimeSetListener listener,
        int hourOfDay,
        int minute,
        boolean is24HourView)

注意:最后一个参数是boolean is24HourView 所以改成false你的问题就解决了

更多详情,请查看TimePickerDialog Documentation

希望对您有所帮助!!!