У меня есть файл .txt, заполненный такими строками, как показано ниже:
- 2011-03-03 03.33.13.222 4 2000 Информация БИЗНЕС ... и т. Д. Blabla
- 2011-03-03 03.33.13.333 4 2000 Информация БИЗНЕС ... и т. Д. Blabla
- 2011-03-03 03.33.13.444 4 2000 Информация БИЗНЕС ... и т. Д. Blabla
В какой-то момент в моем коде я выполняю вычисления и ищу, где извлекаю только даты из начала каждой строки. Теперь, когда я правильно позиционирован в начале файла, я извлекаю только дату и время (с указанием миллисекунд) "ex: 2011-03-03 03.33.13.444" и преобразую в объект QDateTime.
Предполагая, что мой указатель файла расположен правильно в начале определенной строки,
с readLine я читаю текстовую строку даты и времени и преобразую в объект QDateTime
QDateTime dt;
char lineBuff[1024];
qint64 lineLength;
lineLength=file.readLine(lineBuff, 24);
dt = QDateTime::fromString(QString(lineBuff),"yyyy-MM-dd HH.mm.ss.zzz");
Это совершенно правильно.
Но вот в чем проблема:
Когда я делаю то же самое, как это:
QDateTime dt;
QByteArray baLine;
char lineBuff[1024];
file.seek(nGotoPos); //QFile, nGotoPos = a position in my file
QString strPrev(baLine); // convert bytearry to qstring -> so i can use mid()
// calculate where the last two newline characters are in that string
int nEndLine = strPrev.lastIndexOf("\n");
int nStartLine = strPrev.lastIndexOf("\n", -2);
QString strMyWholeLineOfTextAtSomePoint = strPrev.mid(nStartLine,nEndLine);
QString strMyDateTime = strMyWholeLineOfTextAtSomePoint.left(24);
// strMyDateTime in debug mode shows me that it is filled with my string
// "ex: 2011-03-03 03.33.13.444"
// THE PROBLEM
// But when i try to covert that string to my QDateTime object it is empty
dt = QDateTime::fromString(strMyDateTime ,"yyyy-MM-dd HH.mm.ss.zzz");
dt.isValid() //false
dt.toString () // "" -> empty ????
НО ЕСЛИ Я ДЕЛАЮ:
dt = QDateTime :: fromString ("2011-03-03 03.33.13.444", "гггг-мм-дд чч.мм.сс.ззз");
Тогда все в порядке.
В чем может быть проблема с моей QString?
Мне нужно добавить к strMyDateTime "\ 0" или мне нужны другие преобразования ??