我正在使用此代码从时间选择器中获取时间。 。
@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和上午10:00 但我没有得到PM / AM,如果时间超过12,那么我得到13,14。 。 。像图。而不是我想要1到12的数字。
那么如何设置该值? 感谢。
答案 0 :(得分: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();
}
}
答案 1 :(得分:1)
您尝试过:TimePicker.setIs24HourView(false)
?
答案 2 :(得分:1)
这是机器人最好的做法,可以做任何用户想要的事情; Android设置中设置的内容:
How to get user-selected date format in Android?
检查TIME_12_24
回答你的问题,你可以使用DateFormat类来实现你想要的东西