timepickermode studio seleccionar pickers personalizar library implementar fecha ejemplo and android timepicker

studio - time picker android library



Selector de tiempo que muestra el tiempo como 4: 7 en lugar de 04:07 (8)

Tengo una función de selección de tiempo que establece el tiempo en un EditText. Pero el formato que muestra no es adecuado. por ejemplo, a las 04:07 pm se muestra como 4: 7. cada vez que el dígito en el tiempo es menor que 10, elimina el 0 automáticamente. Por favor, ayúdame. Mi codigo es

if (v == btnTimePicker1) { // Process to get Current Time final Calendar c = Calendar.getInstance(); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); // Launch Time Picker Dialog TimePickerDialog tpd = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // Display Selected time in textbox txtTime1.setText(hourOfDay + ":" + minute); } }, mHour, mMinute, false); tpd.show(); }


La lógica es simple, acabo de recortar las respuestas anteriores

simplemente reemplace la línea donde establecemos el tiempo en editText con

txtTime.setText(pad(hourOfDay) + ":" + pad(minute));

A continuación, agregue una función para ello, es decir

public String pad(int input) { String str = ""; if (input > 10) { str = Integer.toString(input); } else { str = "0" + Integer.toString(input); } return str; }


Primero debe crear una función que verifique su entrada y la convierta en Cadena según la condición.

public String pad(int input) { if (input >= 10) { return String.valueOf(input); } else { return "0" + String.valueOf(input); } }

Entonces puedes llamar así

txtTime1.setText(pad(hourOfDay) + ":" + pad(minute));


Prueba esto

simpleTimePicker1 = (TimePicker) findViewById(R.id.timedawn); simpleTimePicker1.setIs24HourView(true); simpleTimePicker1.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay1, int minute1 ) { String shour1 = String.valueOf(hourOfDay1); String sminute1 = String.valueOf(minute1); if ((shour1.length() == 1 ) && (sminute1.length() == 1)) { sHour1= "0" + shour1; sMinute1= "0" + sminute1; } else if ((shour1.length() == 2 ) && (sminute1.length() == 1)) { sHour1= shour1; sMinute1= "0" + sminute1; } else if ((shour1.length() == 1 ) && (sminute1.length() == 2)) { sHour1= "0" + shour1; sMinute1= sminute1; } else{ sHour1= shour1; sMinute1= sminute1; } String timew = sHour1+":" + sMinute1; time3=timew; } });


Puede comprobar si las horas y los minutos son menos de diez. Si es así, simplemente agrega un "0" delante de esa cadena específica. Solo modifica tu código de esta manera:

@Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // Display Selected time in textbox String hourString; if (hourOfDay < 10) hourString = "0" + hourOfDay; else hourString = "" +hourOfDay; String minuteSting; if (minute < 10) minuteSting = "0" + minute; else minuteSting = "" +minute; txtTime1.setText(hourString + ":" + minuteSting); }


Puede que sea un poco tarde para la fiesta, pero esto seguramente ayudará a alguien más.

private String getTime(int hr, int min) { Time tme = new Time(hr, min, 0);//seconds by default set to zero Format formatter; formatter = new SimpleDateFormat("h:mm a"); return formatter.format(tme); }


Puedes usar el siguiente código -

public void onTimeSet(TimePicker view, int hourOfDay, int minuteOfDay) { int hour; String minute, amOrPm; if (hourOfDay > 12) { hour = hourOfDay - 12; amOrPm= "PM"; } else { hour = hourOfDay; amOrPm = "AM"; } if(minuteOfDay < 10) { minute = "0"+minuteOfDay; } else { minute = "" + minuteOfDay; } txtTime1.setText(hour + " : " + minute + " " + amOrPm); }


Solo cambia la línea:

txtTime1.setText(hourOfDay + ":" + minute);

a:

txtTime1.setText(String.format("%02d:%02d", hourOfDay, minute));

y todo estará bien.

Si desea un reloj de 12 horas en lugar de uno de 24 horas, entonces reemplace esa línea con estos:

int hour = hourOfDay % 12; if (hour == 0) hour = 12; txtTime1.setText(String.format("%02d:%02d %s", hour, minute, hourOfDay < 12 ? "am" : "pm"));

O puedes hacerlo en solo 2 líneas con:

int hour = hourOfDay % 12; txtTime1.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour, minute, hourOfDay < 12 ? "am" : "pm"));


TimePickerDialog tpd = new TimePickerDialog(YourActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { if (hourOfDay == 0) { hourOfDay = 12; } mEndTime = (String.format("%02d:%02d", hourOfDay, minute)); //mEndTime = (hourOfDay + ":" + minute); mEditTextEnd.setText(mEndDate + " " + mEndTime + ":00"); } }, mHourEnd, mMinuteEnd, true); tpd.show();