I am trying to determine if the current locale is set to 12 or 24 hour, and set am/pm accordingly. This is what I have got right now, but it shows am/pm all the time regardless if it is set to 24.
if (DateFormat.is24HourFormat(this))
{
mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
int hourOfDay = mHour;
if (hourOfDay>12)
views.setTextViewText(R.id.AMPM, "pm");
if (hourOfDay==12)
views.setTextViewText(R.id.AMPM, "pm");
if (hourOfDay<12)
views.setTextViewText(R.id.AMPM, "am");
}
else {
views.setTextViewText(R.id.AMPM, "");
}
Shouldn't it be
if (!DateFormat.is24HourFormat(this))
You want to assign am/pm only when it is not set to 24 hour format, right?
Here is a more compact version:
if (!DateFormat.is24HourFormat(this)) {
mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
int hourOfDay = mHour;
if (hourOfDay >= 12) {
views.setTextViewText(R.id.AMPM, "pm");
} else {
views.setTextViewText(R.id.AMPM, "am");
}
} else {
views.setTextViewText(R.id.AMPM, "");
}