crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDateTime::fromString, преобразование строки в дату
igor_bogomolov
  опции профиля:
сообщение 15.5.2010, 13:11
Сообщение #1


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Есть строки вида
Цитата
Apr 21 13:10:21 als-au kernel: message

Необходимо выделить дату и преобразовать её в QDateTime


    QString str1 = QLatin1String("Apr 21 13:10:21 als-au kernel: message");
    QString str2 = QLatin1String("Jan  1 13:08:43 efm16 kernel: message");

    QRegExp sep(QLatin1String("\\s+"));
    QString str_t1 = str1.section(sep, 0, 2);
    QString str_t2 = str2.section(sep, 0, 2);

    QDateTime dt1 = QDateTime::fromString(str_t1, QLatin1String("MMM d hh:mm:ss"));
    QDateTime dt2 = QDateTime::fromString(str_t2, QLatin1String("MMM d hh:mm:ss"));

    qDebug() << str_t1 << dt1;
    qDebug() << str_t2 << dt2;

Цитата(Вывод)
"Apr 21 13:10:21" QDateTime("")
"Jan 1 13:08:43" QDateTime("")


Никак не могу понять как правильно сделать преобразование из строки в QDateTime
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.5.2010, 13:44
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ты замечание по функции не прочитал:
Цитата
Note: Unlike the other version of this function, day and month names must be given in the user's local language. It is only possible to use the English names if the user's language is English.


а вот у QDate::fromString я не вижу подобной оговорки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 15.5.2010, 13:57
Сообщение #3


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


После прочтения легче не стало. Т.е. получается что такой формат мне не преобразовать что ли?
QDate тоже не помог.

Легче свой велосипед написать :(
Или я всётаки делаю что то не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.5.2010, 14:04
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Сделал вот так вот:
    QLocale english(QLocale::English);
    qDebug() << english.toDateTime("Apr 21 13:10:21", "MMM d hh:mm:ss");
вывод:
QDateTime("Сб 21. апр 13:10:21 1900")
года не было по этому он 1900, а вот зачем он субботу печатает, не знаю, может это особенность qDebug()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.6.2022, 14:50