scheduleTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(activity, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
String choosedHour = "";
String choosedMinute = "";
String choosedTimeZone = "";
if(selectedHour > 12){
choosedTimeZone = "PM";
selectedHour = selectedHour - 12;
if(selectedHour < 10){
choosedHour = "0"+selectedHour;
}else{
choosedHour = ""+selectedHour;
}
}else{
choosedTimeZone = "AM";
if(selectedHour < 10){
choosedHour = "0"+selectedHour;
}else{
choosedHour = ""+selectedHour;
}
}
if(selectedMinute < 10){
choosedMinute = "0"+selectedMinute;
}else{
choosedMinute= ""+selectedMinute;
}
scheduleTime.setText(choosedHour + ":" + choosedMinute +" "+choosedTimeZone);
//scheduleTime.setText(selectedHour + ":" + selectedMinute);
//scheduleTime.setText( strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );
}
}, hour, minute+30, false);//Yes 24 hour time
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
Since Android give only 24Hours format, even though you set it false. So Only the way to handle it is the conditions that are parsed with the values (i.e) If selectedHour is greater than 12 then it would be PM and also we need to subtract it by 12 so that we get exact 12 Hours format. And I am also added "0" before Hours if hour is less than 10 in order to avoid 4:1AM like formats.