2011-12-23 73 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