Calendar.getInstance() 给了我错误的时间取决于我问的时候

Calendar.getInstance() gives me wrong time depends when I am asking

早上我使用相同的代码,它给了我正确的时间。但是下午就少了12个小时。

例如,在 11:21 我会收到 11:21,但在 15:22 会收到 03:22。

我的代码:

@OnClick(R.id.createMeetingTime)
void onClickTime() {
    // To show current time in the time picker
    Calendar currentTime = Calendar.getInstance();
    int hour = currentTime.get(Calendar.HOUR); 
    int minute = currentTime.get(Calendar.MINUTE);

    String time = mTime.getText().toString();
    if(! time.equals("")) {
        SimpleDateFormat format = new SimpleDateFormat("HH:mm");
        try {
            currentTime.setTime(format.parse(time));
            hour = currentTime.get(Calendar.HOUR);
            minute = currentTime.get(Calendar.MINUTE);
        } catch (java.text.ParseException e) {
            e.printStackTrace();
        }
    }

    TimePickerDialog timePicker;
    timePicker = new TimePickerDialog(
            CreateMeetingActivity.this, new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
            NumberFormat numberFormat = new DecimalFormat("00");
            mTime.setText(numberFormat.format(selectedHour) + ":" +
                    numberFormat.format(selectedMinute));

            mDateTime.set(Calendar.HOUR_OF_DAY, selectedHour);
            mDateTime.set(Calendar.MINUTE, selectedMinute);
        }
    },hour,minute, true); // 24h format
    timePicker.setTitle("Choose Time");
    timePicker.show();
}

谢谢。

Calendar.HOUR 是 12 小时制的字段。使用 Calendar.HOUR_OF_DAY 作为 24 小时时钟版本。

参考:http://developer.android.com/reference/java/util/Calendar.html#HOUR