keshav kowshik
keshav kowshik

Reputation: 2374

I am getting a time which is 12 hours back than the current time from time picker

I have written code for time picker. My current time in time picker is showing 12 hours less than the actual current time. Can any one of you please let me know what am I missing here. All suggestions are welcome. Thanks in advance.

My Time picker code:

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();


        }
    };

My Time picker fragment:

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);
    }

}

If you need more details please let me know.

Upvotes: 1

Views: 226

Answers (1)

sstn
sstn

Reputation: 3069

You are using Calendar.get(Calendar.HOUR), which is defined as following:

HOUR Field number for get and set indicating the hour of the morning or afternoon.

I think you need to use Calendar.HOUR_OF_DAY, then the TimePicker will handle am/pm (I would assume).

Currently, a time of 14:00 (2:00 pm) will return 2 as the hour, therefore you lose the pm/afternoon.

Upvotes: 3

Related Questions