выбор времени, показывающий время как 4: 7 вместо 04:07
У меня есть функция выбора времени, которая устанавливает время в EditText. Но формат, который он показывает, не подходит. например, для 04:07 вечера показано как 4: 7. всякий раз, когда цифра во времени меньше 10, она автоматически удаляет 0. пожалуйста, помогите мне. Мой код
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();
}
Ответы
Ответ 1
Просто измените строку:
txtTime1.setText(hourOfDay + ":" + minute);
чтобы:
txtTime1.setText(String.format("%02d:%02d", hourOfDay, minute));
и все будет хорошо.
Если вы хотите использовать 12-часовой такт вместо 24-часового, вместо этого замените эту строку:
int hour = hourOfDay % 12;
if (hour == 0)
hour = 12;
txtTime1.setText(String.format("%02d:%02d %s", hour, minute,
hourOfDay < 12 ? "am" : "pm"));
или вы можете сделать это всего за 2 строки:
int hour = hourOfDay % 12;
txtTime1.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
minute, hourOfDay < 12 ? "am" : "pm"));
Ответ 2
Вы можете проверить, нет ли часов и минут меньше десяти. Если это так, вы просто добавляете "0" infront этой конкретной строки. Просто измените свой код следующим образом:
@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);
}
Ответ 3
Логика проста, я только что обрезал ответы выше
просто замените строку, в которой мы устанавливаем время в editText с
txtTime.setText(pad(hourOfDay) + ":" + pad(minute));
затем добавим к нему функцию, т.е.
public String pad(int input)
{
String str = "";
if (input > 10) {
str = Integer.toString(input);
} else {
str = "0" + Integer.toString(input);
}
return str;
}
Ответ 4
Сначала нужно создать одну функцию, которая проверяет ваш вход и преобразовывает его в String в соответствии с условием.
public String pad(int input) {
if (input >= 10) {
return String.valueOf(input);
} else {
return "0" + String.valueOf(input);
}
}
Тогда вы можете так называть
txtTime1.setText(pad(hourOfDay) + ":" + pad(minute));
Ответ 5
Вы можете использовать следующий код -
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);
}
Ответ 6
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();
Ответ 7
Попробуй это
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;
}
});