이 코드가 잘못된 날짜를 반환하는 이유는 무엇입니까? 로케일 변수를 디버깅 할 경우QLocale toDate는 "es"로캘에서 항상 잘못된 QDate를 반환합니다.
QLocale locale("es");
QDate date = locale.toDate("1-Jun-14", "d-MMM-yy");
, ES_ES 로케일을 제대로 초기화되지만 날짜와 거짓 date.isValid()
수익률을 반환하지 않습니다.
이 코드가 잘못된 날짜를 반환하는 이유는 무엇입니까? 로케일 변수를 디버깅 할 경우QLocale toDate는 "es"로캘에서 항상 잘못된 QDate를 반환합니다.
QLocale locale("es");
QDate date = locale.toDate("1-Jun-14", "d-MMM-yy");
, ES_ES 로케일을 제대로 초기화되지만 날짜와 거짓 date.isValid()
수익률을 반환하지 않습니다.
왜 그런지 모르겠지만 .
(한글)을 뒤에 넣어야합니다. 나에게 버그 같은
"Jun."
QDate("1914-06-01")
자물쇠와 내가 예를 들어 그것을 사용하려고하면 실패 출력은 의외로했다
QLocale locale("es");
qDebug() << locale.standaloneMonthName(6, QLocale::ShortFormat);
QDate date = locale.toDate("01-Jun.-14", "dd-MMM-yy");
qDebug() << date;
: 다음 코드를 시도 독일어 로켈.
업데이트 : 확인. 알겠습니다. 이것은 꽤 혼란 스럽다. locale.monthName
에 의해 주어진 짧은 이름을 사용해야합니다. 예를 들어 "준." ES는 "Juni", DE는 "Juni"입니다. 이것은 실제로 의미가 없습니다. 독일에서는 "Juni"의 약식 이름이 "Jun"입니다. 스페인에 대해서 나는 그것을 모른다. 이것은 버그입니다.
업데이트 2 : 필자는 시스템을 이해하고 있다고 생각합니다 (적어도 독일어 로켈의 경우). 성명이 4 자 (예 : "Januar")보다 큰 경우 짧은 버전은 점을 추가 한 실제 짧은 형식 ('1 월') ('1 월')입니다. 성명이 4 자보다 짧으면 짧은 양식은 긴 양식 (예 : "Mai")과 정확히 동일합니다. 하지만 EN 로케일의 경우 점이 추가되지 않으므로 왜 점이 추가되는지 알 수 없습니다.
나는 QT에 케이스를 연 및 응답이다 :
스페인어 유니 코드 CLDR 데이터
는 월 이름 다음에 점을 가지고있다.이것은 버그가 아니며 점이 필요합니다.
자세한 내용 : https://bugreports.qt-project.org/browse/QTBUG-39519
매우 이상합니다. 로케일 "pt"를 넣으면 잘 작동합니다 (포르투갈어의 junho). 나는 그것이 버그라고 생각한다. 나는 그것을 QT에보고 할 것이다. – mabg
네,이 점은 이상합니다. – lpapp