Russian Qt Forum

Qt => Общие вопросы => Тема начата: Joss от Февраль 15, 2010, 19:48



Название: [Решено] QDate::fromString - проблемы с локалью
Отправлено: Joss от Февраль 15, 2010, 19:48
Почему не работает?

Код:
        qDebug() <<  QDate::fromString("15Jan2010", "ddMMMyyyy"); // не работает
        qDebug() <<  QDate::fromString("15012010", "ddMMyyyy"); // работает

Мне нужно распарсить строку первого типа. Я что-то делаю не так (4.6.1)?


Название: Re: QDate::fromString - баг или нет?
Отправлено: BRE от Февраль 15, 2010, 19:56
Проверь, что он ждет в качестве короткого имени месяца при твоей локали:
Код
C++ (Qt)
for( int i = 1; i <=12; ++i )
   qDebug() << QDate::shortMonthName( i );
 


Название: Re: QDate::fromString - проблемы с локалью
Отправлено: Joss от Февраль 15, 2010, 20:05
Ага, точно!
Вот блин, и как быть, когда эта дата приходит, например, с RSS, а там латиница, а программа не должна быть привязана к текущей локали? Вообще странно, почему English не воспринимается, какая бы ни была локаль.

Все равно огромное спасибо, уже час голову ломаю!  :)


Название: Re: QDate::fromString - проблемы с локалью
Отправлено: BRE от Февраль 15, 2010, 20:07
Ага, точно!
Вот блин, и как быть, когда эта дата приходит, например, с RSS, а там латиница, а программа не должна быть привязана к текущей локали? Вообще странно, почему English не воспринимается, какая бы ни была локаль.

Все равно огромное спасибо, уже час голову ломаю!  :)
Посмотри на класс QLocale.
Создай объект с нужной локалью и используй:
QString QLocale::toString ( const QDate & date, const QString & format ) const


Название: Re: QDate::fromString - баг или нет?
Отправлено: Joss от Февраль 15, 2010, 20:16
Спасибо!