I am using a TimePicker in my app. Whenever the user opens the screen with the TimePicker, I initialize it with the current time. When I do this, the TimePicker shows AM ins
I think you have to override the onTimeSet() method of the Timepicker. Check this link
TimePickerDialog and AM or PM
May it helps you..
First, get an instance of the Calendar
class, then use HOUR_OF_DAY
to get the hour. HOUR_OF_DAY
will be in 24-hour format so just assign that to a variable and then check whether that int is greater than 0
and less than 12
. If this condition is true then append AM
or else PM
. Because HOUR_OF_DAY
is 24-hour format, the PM hours will be displayed as 13,14
so to handle this, just subtract the HOUR_OF_DAY
by 12
. Here is the code:
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour < 12 && hour >= 0) {
tv.setText(hour + " AM");
} else {
hour -= 12;
if(hour == 0) {
hour = 12;
}
tv.setText(hour + " PM");
}
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute) {
if(hourOfDay>=0 && hourOfDay<12){
time = hourOfDay + " : " + minute + " AM";
} else {
if(hourOfDay == 12){
time = hourOfDay + " : " + minute + "PM";
} else{
hourOfDay = hourOfDay -12;
time = hourOfDay + " : " + minute + "PM";
}
}
deliveryTime.setText(time);
}
Try this :
Calendar calendar = Calendar.getInstance();
calendar.set(0, 0, 0, hourOfDay, minute, 0);
long timeInMillis = calendar.getTimeInMillis();
java.text.DateFormat dateFormatter = new SimpleDateFormat("hh:mm a");
Date date = new Date();
date.setTime(timeInMillis);
time.setText(dateFormatter.format(date));
You'll have to use Calendar.HOUR_OF_DAY
instead of Calendar.HOUR
.
i.e., timePicker.setCurrentHour()
always expects the argument in 24-hour format. Unfortunately, this fact is not documented properly in the API documentation.