-->

如何设置AM / PM在TimePicker?(How do I set AM/PM in a Ti

2019-06-26 02:55发布

我用我的应用程序一个TimePicker。 每当用户打开屏幕与TimePicker,我与当前时间进行初始化。 当我这样做时,TimePicker显示AM而非PM。 为什么会出现这种情况? 有什么我要在我的代码添加?

Date initDate = m_NoteManageObject.getDateTimeArray(position);
Calendar myCal = Calendar.getInstance();

myCal.setTime(initDate);
TimePicker timePicker  = (TimePicker)layout.findViewById(R.id.time_picker);

// Initialise Time Picker

timePicker.setCurrentHour(myCal.get(Calendar.HOUR));
timePicker.setCurrentMinute(myCal.get(Calendar.MINUTE));

Answer 1:

你将不得不使用Calendar.HOUR_OF_DAY而不是Calendar.HOUR

timePicker.setCurrentHour()总是期望在24小时的格式参数。 不幸的是,这其实是不正确的API文档中记录。



Answer 2:

我认为你必须重写Timepicker的onTimeSet()方法。 检查此链接

TimePickerDialog和上午或下午

愿它可以帮助你..



Answer 3:

试试这个 :

            Calendar calendar = Calendar.getInstance();
            calendar.set(0, 0, 0, hourOfDay, minute, 0);
            long timeInMillis = calendar.getTimeInMillis();
            java.text.DateFormat dateFormatter = new SimpleDateFormat("hh:mm a");
            Date date = new Date();
            date.setTime(timeInMillis);
            time.setText(dateFormatter.format(date));


Answer 4:

public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute) {
    if(hourOfDay>=0 && hourOfDay<12){
        time = hourOfDay + " : " + minute + " AM";
    } else {
        if(hourOfDay == 12){
            time = hourOfDay + " : " + minute + "PM";
        } else{
            hourOfDay = hourOfDay -12;
            time = hourOfDay + " : " + minute + "PM";
        }
    }

    deliveryTime.setText(time);
}


Answer 5:

首先,获得的实例Calendar类,然后使用HOUR_OF_DAY拿到小时。 HOUR_OF_DAY将在24小时的格式,以便只赋值给一个变量,然后检查INT是否大于0且小于12 。 如果这个条件为真,那么追加AM或者PM 。 由于HOUR_OF_DAY为24小时格式,在PM小时将显示为13,14所以要解决这个问题,只是减去HOUR_OF_DAY12 。 下面是代码:

Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour < 12 && hour >= 0) {
    tv.setText(hour + " AM");
} else {
    hour -= 12;
    if(hour == 0) {
        hour = 12;
    }
    tv.setText(hour + " PM");
}


文章来源: How do I set AM/PM in a TimePicker?