Как установить AM/PM в часах?
Я использую часы в своем приложении. Всякий раз, когда пользователь открывает экран с часами, я инициализирую его с текущим временем. Когда я это делаю, часы показывают AM вместо PM. Почему это происходит? Есть ли что-нибудь, что я должен добавить в свой код?
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));
5 ответов
вам придется использовать Calendar.HOUR_OF_DAY
вместо Calendar.HOUR
.
то есть,timePicker.setCurrentHour()
всегда ожидает аргумент в 24-часовом формате. К сожалению, этот факт не задокументирован должным образом в документации API.
Я думаю, вам нужно переопределить метод onTimeSet() Timepicker. Проверьте эту ссылку
может это поможет вам..
попробуйте это :
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));
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);
}
во-первых, получить экземпляр Calendar
класса, а затем использовать HOUR_OF_DAY
чтобы получить час. HOUR_OF_DAY
будет в 24-часовом формате, поэтому просто назначьте это переменной, а затем проверьте, больше ли этот int 0
и меньше 12
. Если это условие истинно, добавьте AM
или PM
. Потому что HOUR_OF_DAY
24-часовой формат, часы PM будут отображаться как 13,14
Итак, чтобы справиться с этим, просто вычесть HOUR_OF_DAY
by 12
. Вот код:
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");
}