将qint64转换为QString

12

使用其他类型,我可以轻松地执行类似以下操作的操作:

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也有类似的解决方案。


你是想将其转换为日期字符串,还是获取数字的字符串表示形式? - Chris
我正在尝试将其转换为包含文件大小的字符串。我不确定如何将建议的答案应用到我的代码中。 - Philip Kirkbride
3个回答

17

6

以下是更通用的回答,因为很多人来到这里都试图找到标题中精确问题的答案:

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

5

您需要编写以下代码:

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(...)静态方法的文档,了解详细信息,从这里开始。您需要匹配qint64类型的变量,这是qlonglong的重载版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接