2015-11-19 3 views
1

Как получить «AM» или «PM»? Я видел функции, которые есть у TimePicker, но я не нашел ответа.Как получить «AM» или «PM» в «TimePickerDialog»

enter image description here

TimePickerDialog mTimePicker = new TimePickerDialog(EditEventActivity.this, 
      new TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(TimePicker timePicker, 
             int selectedHour, int selectedMinute) { 

        Log.i(timePicker.is24HourView()?"24":"12"); 
        mTextViewTime.setText(selectedHour + ":" 
          + selectedMinute); 
        mHourOfTime = selectedHour; 
        mMinuteOfTime = selectedMinute; 
       } 
      }, mHourOfTime, mMinuteOfTime, is24HoursFormat);// Yes 24 hour time 
    mTimePicker.show(); 

ответ

1

AM и PM будет отображаться, если пользователь устанавливает Use 24-hour format ложь в параметрах устройства.

Путь на устройстве:
Settings > Date-Time > Use 24-Hour-Format

Источник:
Я попробовал его прямо сейчас на моем устройстве.

+0

О, я знаю, что значение часа и минуты будет изменено в соответствии с «AM» или «PM», поэтому я не должен получать значение «AM» или «PM» – zys

+0

Прошу прощения, я не знаю Не поймите, что вы хотите сказать. – Altoyyr

+0

проблема решена! Спасибо!^^ – zys

0
scheduleTime.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Calendar mcurrentTime = Calendar.getInstance(); 
      int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY); 
      int minute = mcurrentTime.get(Calendar.MINUTE); 
      TimePickerDialog mTimePicker; 
      mTimePicker = new TimePickerDialog(activity, new TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { 

        String choosedHour = ""; 
        String choosedMinute = ""; 
        String choosedTimeZone = ""; 
        if(selectedHour > 12){ 
         choosedTimeZone = "PM"; 
         selectedHour = selectedHour - 12; 
         if(selectedHour < 10){ 
          choosedHour = "0"+selectedHour; 
         }else{ 
          choosedHour = ""+selectedHour; 
         } 
        }else{ 
         choosedTimeZone = "AM"; 
         if(selectedHour < 10){ 
          choosedHour = "0"+selectedHour; 
         }else{ 
          choosedHour = ""+selectedHour; 
         } 
        } 

        if(selectedMinute < 10){ 
         choosedMinute = "0"+selectedMinute; 
        }else{ 
         choosedMinute= ""+selectedMinute; 
        } 

        scheduleTime.setText(choosedHour + ":" + choosedMinute +" "+choosedTimeZone); 
        //scheduleTime.setText(selectedHour + ":" + selectedMinute); 
        //scheduleTime.setText(strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm); 
       } 
      }, hour, minute+30, false);//Yes 24 hour time 
      mTimePicker.setTitle("Select Time"); 
      mTimePicker.show(); 
     } 
    }); 

Поскольку Android дает только формат 24 часа, даже если вы установили его неверно. Таким образом, только способ справиться с этим - это условия, которые анализируются значениями (i.e) Если выбраноHour больше, чем 12, тогда это будет PM, а также мы должны вычесть его на 12, чтобы мы получили точный формат 12 часов. И я также добавил «0» до часа, если час меньше 10, чтобы избежать форматов 4: 1AM.

Смежные вопросы