Russian Qt Forum

Qt => Общие вопросы => Тема начата: neosapient от Сентябрь 11, 2008, 12:45



Название: Помогите написать прототип для парсера QDateTime
Отправлено: neosapient от Сентябрь 11, 2008, 12:45
Есть строка вида "Feb 20, 2008"

Пытаюсь её распарсить через прототип "MMM dd, yyyy"
Код:
QString buf("Feb 20, 2008");
QDateTime dt = QDateTime::fromString ( buf, "MMM dd, yyyy" );
qDebug() << dt.toString();

Но на консоль ничего не выводиться  ???


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: Пантер от Сентябрь 11, 2008, 12:53
А сама консоль включена в проекте? ;)


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: neosapient от Сентябрь 11, 2008, 13:01
да включена

На неё пишутся две кавычки
Цитировать
""


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: Пантер от Сентябрь 11, 2008, 13:03
Попробуй dt.toString("dd.MM.yyyy").


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: neosapient от Сентябрь 11, 2008, 13:08
Цитировать
Попробуй dt.toString("dd.MM.yyyy").
Не помогает, так как у меня другой формат даты.
Надо правильно распарсить вот такой набор, например,
Feb 19, 2008
May 20, 2008
Apr 09, 2008
Aug 18, 2008


Название: Re: Помогите написать прототип для парсера QDateTim
Отправлено: Пантер от Сентябрь 11, 2008, 14:16
Код:
QString buf("Feb 20, 2008");
QDateTime dt = QDateTime::fromString ( buf, "MMM dd, yyyy" );
qDebug() << dt.toString("dd.MM.yyyy");


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: neosapient от Сентябрь 11, 2008, 15:30
не работает  :-\


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: Пантер от Сентябрь 11, 2008, 16:35
Вот так работает?
qDebug() << QDateTime::fromString("01.02.2008","dd.MM.yyyy").toString("dd.MM.yyyy").toLocal8Bit();


Название: Re: Помогите написать прототип для парсера QDateTim
Отправлено: neosapient от Сентябрь 12, 2008, 11:39
Код:
Вот так работает?
qDebug() << QDateTime::fromString("01.02.2008","dd.MM.yyyy").toString("dd.MM.yyyy").toLocal8Bit();

Да, так работает. Но "dd.MM.yyyy" это стандартный прототип.
А мне надо запустить парсер под мою задачу.
(Примеры строк приводил выше)

В чем может быть ошибка задания прототипа для парсера ?

Код:
qDebug() << QDateTime::fromString("Feb 20, 2008","MMM dd, yyyy").toString("dd.MM.yyyy").toLocal8Bit();


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: Red Devil от Сентябрь 12, 2008, 16:44
Дай тестовый проект с инклудами и main, лень писать.


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: SASA от Сентябрь 12, 2008, 18:37
Код:
qDebug() <<  QLocale(QLocale::English).toDate("Feb 20, 2008","MMM dd, yyyy").toString("dd.MM.yyyy");

По умолчанию QDate использует имёна месяцев из текущей локали. Наверное у  neosapient она русская.


Название: Re: Помогите написать прототип для парсера QDateTime
Отправлено: Пантер от Сентябрь 13, 2008, 00:05
Если такой случай, то можно попробовать менять локаль в приложении.