반응형
시스템이 12 시간인지 24 시간인지 어떻게 확인합니까?
현재 로케일이 12 시간 또는 24 시간으로 설정되어 있는지 확인하고 그에 따라 오전 / 오후를 설정하려고합니다. 이것은 내가 지금 가지고있는 것이지만 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, "");
}
안돼
if (!DateFormat.is24HourFormat(this))
오전 / 오후를 24 시간 형식으로 설정하지 않은 경우에만 할당하고 싶습니까?
다음은 더 간결한 버전입니다.
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, "");
}
더 나은 솔루션 및 전체 코드 샘플 :
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
// below, the "hour" and "min" are variables,to which you want to set
//calendar.For example you can take this values from time picker
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, min);
is24HourFormat = android.text.format.DateFormat.is24HourFormat(context);
if (is24HourFormat) {
// if system uses 24hourformat dateFormat will format the calender time according to 24hourformat. "HH" means 24hourformat
CharSequence setTime = dateFormat.format("HH:mm", calendar);
} else {
// if system doesnt use 24hourformat dateFormat will format the calender time according to 12hourformat. "hh" means 12hourformat and "a" will show am/pm marker
CharSequence setTime = dateFormat.format("hh:mm a", calendar);
}
독일어가 AM/PM
아닌 항상 12 시간 형식으로 표시하려면 날짜 형식으로 사용하십시오.vorm/nachm
Locale.US
/**
* Returns the time in a localized format. The 12-hours format is always displayed with
* AM/PM (and not for example vorm/nachm in german).
*
* @param context the context
* @return Localized time (15:24 or 3:24 PM).
*/
public static String getTime(Context context, long time) {
if (android.text.format.DateFormat.is24HourFormat(context)) {
return new SimpleDateFormat("HH:mm", Locale.US).format(new Date(time));
} else {
return new SimpleDateFormat("hh:mm a", Locale.US).format(new Date(time));
}
}
참조 URL : https://stackoverflow.com/questions/4392636/how-do-i-check-if-system-is-12-or-24-hour
반응형
'Nice programing' 카테고리의 다른 글
사용자가 UILabel에서 복사 할 텍스트를 선택하도록 허용 (0) | 2021.01.06 |
---|---|
오류시 node.js가 종료되지 않도록 설정 (0) | 2021.01.06 |
/ usr / local / lib에서 공유 라이브러리를 검색합니까? (0) | 2021.01.06 |
datetime 객체가 pytz로 지역화되었는지 확인하는 방법은 무엇입니까? (0) | 2021.01.06 |
Graphviz 하위 그래프가 시각화되지 않습니다. (0) | 2021.01.06 |