将qint64转换为QString

时间:2013-09-24 21:48:28

标签: c++ qt qt4 qstring qtcore

对于其他类型,我可以轻松地执行类似

的操作
mitm.created().toString("yyyy-MM-dd")

是否有将qint64转换为QString的类似功能?你可以在下面找到代码。

    fileArray.append("[");
    foreach(QFileInfo mitm, mDir.entryInfoList(QDir::Files)){
        fileArray.append("{\"filePath\": \"");
        fileArray.append(mitm.absoluteFilePath());
        fileArray.append("\",");
        fileArray.append("\"fileCreated\": \"");
        fileArray.append(mitm.created().toString("yyyy-MM-dd"));
        fileArray.append("',");
        fileArray.append("'fileSize': '");
//      fileArray.append(mitm.size());
        fileArray.append("\"}");
        if(fileCount!=mDir.entryInfoList(QDir::Files).count()-1){ fileArray.append(","); }
        fileCount++;
    }
    fileArray.append("]");

我已经注释掉了破坏代码的行。我有相同的日期问题,但用toString来转换它。我希望qint64会有类似的解决方案。

3 个答案:

答案 0 :(得分:10)

您可能正在寻找QString::number(qlonglong, int)

答案 1 :(得分:4)

您需要为此编写以下代码:

fileArray.append("[");
foreach(QFileInfo mitm, mDir.entryInfoList(QDir::Files)){
    fileArray.append("{\"filePath\": \"");
    fileArray.append(mitm.absoluteFilePath());
    fileArray.append("\",");
    fileArray.append("\"fileCreated\": \"");
    fileArray.append(mitm.created().toString("yyyy-MM-dd"));
    fileArray.append("',");
    fileArray.append("'fileSize': '");
    fileArray.append(QString::number(mitm.size()));
    fileArray.append("\"}");
    if(fileCount!=mDir.entryInfoList(QDir::Files).count()-1){ fileArray.append(","); }
    fileCount++;
}
fileArray.append("]");

有关详细信息,请参阅QString::number(...)静态方法的文档,从here开始。您将需要匹配qint64的变体,即qlonglong覆盖。

答案 2 :(得分:3)

更一般的回复,因为很多人来到这里试图找到标题中确切问题的答案:

QDateTime lm = QFileInfo(QFile(current)).lastModified();
qint64 epoch = lm.toMSecsSinceEpoch();
QString str = QString::number(epoch); // actual conversion