시간과 분이 TextView
이고 AM/PM이 Spinner
인 알람을 설정 중입니다.calendar.set (Calendar.HOUR_OF_DAY, alarmHour); 작동 안됨. 내가 도대체 뭘 잘못하고있는 겁니까?
Calendar calen = Calendar.getInstance();
calen.set(Calendar.HOUR_OF_DAY, alarmHour); //alarmHour from TextView
calen.set(Calendar.MINUTE, alarmMinute); //alarmMinute from TextView
calen.set(Calendar.SECOND, 0);
calen.set(Calendar.MILLISECOND, 0);
if(amorpm.equals("PM") //amorpm from Spinner
{
calen.set(Calendar.AM_PM, Calendar.PM);
}
else
{
calen.set(Calendar.AM_PM, Calendar.AM);
}
문제는이 Calendar
객체의 시간 값은 사용자가 TextView
에서 입력 값 즉, 때로는 올바른이다 (그리고 12에 항상 1) : 여기에 내가 Calendar
객체를 초기화하는 방법입니다 . 그러나 때때로 값은 현재 시간과 동일합니다. 예를 들어, 현재 시간이 오후 11시 반, 그리고 내가 오전 9시 반에 대한 알람을 설정 한 후 시간 필드 값 11있다. 한 가지 이상한 점은 Calendar
개체의 이름을 다른 것으로 변경하면 cal과 같이 작동한다는 것입니다. 그러나 나중에 일하지 않을 것이다. 무엇이 잘못 될 수 있습니까?
도움 주셔서 감사합니다.
그건 내가 실제로 만들고있는 실수입니다. 그러나 나는 방금 "PM"을 스피너에서 선택하고 "HOUR"에 알람 시간 "12"를 입력하면 알람에서 "PM"을 "AM"으로 변경하는 것으로 나타났습니다. 마찬가지로 "AM"과 "12"를 선택하면 "PM"으로 바뀝니다. 그래도 12가 아닌 값은 괜찮습니다. –
'Calendar.HOUR'는 값 0-11 (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#HOUR)만을 사용하도록되어 있으므로 아마 AM/PM을 12로 설정했을 때 AM/PM을 롤링하면서 지능적으로 작업하려고합니다. – adrian
답변 해 주셔서 감사합니다. 나는 Calendar.HOUR_OF_DAY'에서 값을 가져 와서 자신의 논리를 통해 AM/PM을 설정하기로 결정했습니다. 앱에서 12 시간 형식의 값만 가져 왔기 때문입니다. –