Russian Qt Forum
Ноябрь 25, 2024, 07:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите написать прототип для парсера QDateTime  (Прочитано 7911 раз)
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();

Но на консоль ничего не выводиться  Непонимающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 11, 2008, 12:53 »

А сама консоль включена в проекте? Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
neosapient
Гость
« Ответ #2 : Сентябрь 11, 2008, 13:01 »

да включена

На неё пишутся две кавычки
Цитировать
""
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Сентябрь 11, 2008, 13:03 »

Попробуй dt.toString("dd.MM.yyyy").
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
neosapient
Гость
« Ответ #4 : Сентябрь 11, 2008, 13:08 »

Цитировать
Попробуй dt.toString("dd.MM.yyyy").
Не помогает, так как у меня другой формат даты.
Надо правильно распарсить вот такой набор, например,
Feb 19, 2008
May 20, 2008
Apr 09, 2008
Aug 18, 2008
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Сентябрь 11, 2008, 14:16 »

Код:
QString buf("Feb 20, 2008");
QDateTime dt = QDateTime::fromString ( buf, "MMM dd, yyyy" );
qDebug() << dt.toString("dd.MM.yyyy");
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
neosapient
Гость
« Ответ #6 : Сентябрь 11, 2008, 15:30 »

не работает  В замешательстве
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Сентябрь 11, 2008, 16:35 »

Вот так работает?
qDebug() << QDateTime::fromString("01.02.2008","dd.MM.yyyy").toString("dd.MM.yyyy").toLocal8Bit();
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
neosapient
Гость
« Ответ #8 : Сентябрь 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();
« Последнее редактирование: Сентябрь 12, 2008, 11:47 от neosapient » Записан
Red Devil
Гость
« Ответ #9 : Сентябрь 12, 2008, 16:44 »

Дай тестовый проект с инклудами и main, лень писать.
Записан
SASA
Гость
« Ответ #10 : Сентябрь 12, 2008, 18:37 »

Код:
qDebug() <<  QLocale(QLocale::English).toDate("Feb 20, 2008","MMM dd, yyyy").toString("dd.MM.yyyy");

По умолчанию QDate использует имёна месяцев из текущей локали. Наверное у  neosapient она русская.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Сентябрь 13, 2008, 00:05 »

Если такой случай, то можно попробовать менять локаль в приложении.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.101 секунд. Запросов: 23.