2011-12-23 69 views
0

我使用此代碼從時間選取器中獲取時間。 。 。如何將EditText的值設置爲1:00 PM或8:00 AM?

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this,mTimeSetListener, Calendar.HOUR, Calendar.MINUTE, false); 
    } 
    return null; 
} 

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      reminderSetTime.setText(""+hourOfDay+":"+minute+""); 
      Toast.makeText(ImportantDateReminderActivity.this, "Time is="+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show(); 
     } 
    }; 

static final int TIME_DIALOG_ID = 0; 

,並顯示我用下面的代碼TimePicker:

case R.id.reminderTime: 
      showDialog(TIME_DIALOG_ID); 
      break; 

隨着這樣做,我沒有得到的時間正確的值。 我要像1:00 PM 10:00 AM 的價值,但我沒有得到PM/AM,如果時間更多的則是12,然後我收到13,14。 。 。像圖。而不是,我想在1至12

那麼如何設置該值的數字? 謝謝。

+0

這很奇怪,因爲你有is24HourView到假。任何日誌? – 2011-12-23 09:21:51

回答

2
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      mHour = hourOfDay; 
      mMinute = minute; 
      if(mHour==12) 
       btnFromTime.setText(new StringBuilder().append("12").append(":").append(pad(minute)+" PM")); 
     else 
      updateTimeDisplay(); 
     } 
    }; 

,這是爲我工作...

,並使用此

private void updateTimeDisplay() { 

     try { 
      Format formatter; 
      SimpleDateFormat df = new SimpleDateFormat("hh:mm"); 
      Date d = df.parse(mHour + ":" + mMinute); 
      Calendar gc = new GregorianCalendar(); 
      gc.setTime(d); 
      gc.add(Calendar.HOUR, 0); 
      Date d2 = gc.getTime(); 
      formatter = new SimpleDateFormat("hh:mm a"); 
      String time = formatter.format(d2); 

      btnFromTime.setText(time); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 
+0

ü需要我將粘貼我的整個代碼.. – 2011-12-23 09:24:46

+0

+1好的解決方案... – 2011-12-23 09:28:19

+0

謝謝。讓我試試看。 – 2011-12-23 09:51:58

1

你嘗試:TimePicker.setIs24HourView(false)

+0

感謝您的回答。 – 2011-12-23 10:04:32

1

這是機器人會做任何用戶想要的最佳實踐;什麼是設置在Android設置:

How to get user-selected date format in Android?

檢查TIME_12_24

回答你的問題,你可以使用DateFormat類才達到你想要什麼

+0

感謝您的回答。 – 2011-12-23 10:04:24