android - examples - ¿Cómo configuro AM/PM en un TimePicker?
webview android studio github (5)
Creo que tienes que anular el método onTimeSet () del Timepicker. Revisa este enlace
Que te ayude ..
Estoy usando un TimePicker en mi aplicación. Cuando el usuario abre la pantalla con el Selector de tiempo, lo inicializo con la hora actual. Cuando hago esto, el TimePicker muestra AM en lugar de PM. ¿Por qué pasó esto? ¿Hay algo que tengo que añadir en mi código?
Date initDate = m_NoteManageObject.getDateTimeArray(position);
Calendar myCal = Calendar.getInstance();
myCal.setTime(initDate);
TimePicker timePicker = (TimePicker)layout.findViewById(R.id.time_picker);
// Initialise Time Picker
timePicker.setCurrentHour(myCal.get(Calendar.HOUR));
timePicker.setCurrentMinute(myCal.get(Calendar.MINUTE));
Primero, obtenga una instancia de la clase de Calendar
, luego use HOUR_OF_DAY
para obtener la hora. HOUR_OF_DAY
estará en formato de 24 horas, así que asigne eso a una variable y luego verifique si ese int es mayor que 0
y menor que 12
. Si esta condición es verdadera, añada AM
o PM
. Debido a que HOUR_OF_DAY
tiene un formato de 24 horas, las horas PM se mostrarán como 13,14
por lo que para manejar esto, solo reste HOUR_OF_DAY
por 12
. Aquí está el código:
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");
}
Prueba esto :
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));
Tendrás que usar Calendar.HOUR_OF_DAY
lugar de Calendar.HOUR
.
es decir, timePicker.setCurrentHour()
siempre espera el argumento en formato de 24 horas. Desafortunadamente, este hecho no está documentado adecuadamente en la documentación de la API.
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);
}