使用时间选择器对话框选择了错误的时间

Wrong time selected with timepickerdialog

我正在使用以下代码从用户那里获取时间。一切正常,除非用户 select 15 在 24 小时格式视图中,最终输出在凌晨 3 点出现,反之亦然。我阅读了很多博客,但没有得到明确的解决方案来排序。有人可以帮忙吗。 这是代码:

final TimePickerDialog.OnTimeSetListener tf = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int i, int i1) {
            calendar.set(Calendar.HOUR, i);
            calendar.set(Calendar.MINUTE, i1);
            String myFormat = "hh:mm a"; //In which you need put here
            SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
            timefrom.setText(sdf.format(calendar.getTime()));
        }
    };

点击时设置时间的代码如下:

  timefrom.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new TimePickerDialog(HireActivity.this, tf,
                        calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), true).show();
            }
        });

我也尝试使用 122 小时视图格式,如果用户 select 上午 5 点,则最终输出为下午 6 点,反之亦然。

使用HOUR_OF_DAY

 new TimePickerDialog(HireActivity.this, tf,
           calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();