我得到的时间比当前时间选择器的时间晚了12个小时

时间:2015-03-16 09:13:27

标签: android android-timepicker

我已经为时间选择器编写了代码。我当前的时间选择器显示比实际当前时间少12小时。你们中的任何人都可以告诉我这里我错过了什么。欢迎所有建议。提前谢谢。

我的时间选择码:

public void showTimePicker() {

        TimePickerFragment time1 = new TimePickerFragment();

        /**
         * Set Up Current Time Into dialog
         */

        Calendar calendar = Calendar.getInstance();
        Bundle args = new Bundle();
        args.putInt("Hour", calendar.get(Calendar.HOUR));
        args.putInt("Minute", calendar.get(Calendar.MINUTE));

        time1.setArguments(args);
        /**
         * Set Call back to capture selected time
         */
        time1.setCallBack(onTime);
        time1.show(getFragmentManager(), "Time Picker");


    }

    TimePickerDialog.OnTimeSetListener onTime = new TimePickerDialog.OnTimeSetListener() {


        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {


            time.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute));
            timeValue1 = time.getText().toString();


        }
    };

我的时间选择器片段:

public class TimePickerFragment extends DialogFragment {


    TimePickerDialog.OnTimeSetListener onTimeSet;


    public TimePickerFragment() {

    }

    public void setCallBack(TimePickerDialog.OnTimeSetListener onTime) {

        onTimeSet = onTime;


    }

 public int hour, minute;


    @Override
    public void setArguments(Bundle args) {
        super.setArguments(args);
        hour = args.getInt("Hour");
        minute = args.getInt("Minute");

    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        return new TimePickerDialog(getActivity(), onTimeSet, hour, minute, true);
    }

}

如果您需要更多详情,请告诉我们。

1 个答案:

答案 0 :(得分:3)

您正在使用Calendar.get(Calendar.HOUR),其定义如下:

  

小时获取和设置的字段编号,表示上午或下午的小时。

我认为您需要使用Calendar.HOUR_OF_DAY,然后TimePicker会处理上午/下午(我会假设)。

目前,14:00(下午2:00)的时间将以小时为单位返回2,因此您将失去下午/下午。