ICU의 라이브러리를 사용하여 다양한 언어의 날짜 정보를 처리하는 프로젝트를 진행 중입니다. I 함수에 다음 코드를 사용ICU DateFormatSymbols :: getMonths()
count
의 값은 예를 들면 얻어진 월수, 같은
getMonths()
방법으로 설정하도록되어
UErrorCode uec;
Locale locale(language); // e.g with language = "en"
DateFormatSymbols symbs(locale, uec);
int32_t count;
auto months = symbs.getMonths(count);
for(int32_t i = 0 ; i < count; ++i){
// some code handling month names, no ICU;
}
// more code that does not use ICU
언어가 영어 인 경우 12.
동일한 기능을 여러 번 호출 할 때 가끔 count
이 12이고 때로는 0 인 것처럼 보일 수도 있습니다. 더 나쁜 것은 동일한 코드가 제 동료의 PC에서 다르게 동작하고 과 아무 관련이없는 코드 행을 추가 할 때 동작이 바뀌는 것입니다 (예 : UnicodeString
).
DateFormatSymbols
또는 로케일의 초기화로 인해 문제가있는 것으로 의심되지만, 내 인생에서 나는 무엇을 알 수 없습니다. 누구나 왜 이런 일이 일어날 지 그리고 어쩌면 어떻게 고쳐야 할 지 말해 주시겠습니까? 그래서 나는 항상 예상 달 수를 얻으실 수 있습니다 count
?