如何将EditText的值设置为1:00 PM或8:00 AM?

时间:2011-12-23 09:13:47

标签: android datetime android-layout android-ndk timepicker

我正在使用此代码从时间选择器中获取时间。 。

@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的数字。

那么如何设置该值? 感谢。

3 个答案:

答案 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类来实现你想要的东西