Jump to content

Date in File Name

From Qt Wiki
Revision as of 13:39, 28 June 2015 by Wieland (talk | contribs) (Cleanup)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

In the case you have to build a file name after the current date, so that it will look like data_mm_dd_yyyy.txt you can use the following simple function to get the string name of the file.

QString FileNameHandler::todayFileName() {
    QDate today = QDate::currentDate();
    QString relativeFileName( "data_" );
    relativeFileName.append( QString::number( today.month() ) );
    relativeFileName.append( "''" );
    relativeFileName.append( QString::number( today.day() ) );
    relativeFileName.append( "''" );
    relativeFileName.append( QString::number( today.year() ) );
    relativeFileName.append( ".txt" );
    return relativeFileName;
}

Or its shorter version that uses the overloading of the + operator for QString:

QString FileNameHandler::todayFileName() {
    QDate today = QDate::currentDate();
    QString relativeFileName( "data_" );
    relativeFileName + QString::number( today.month()
        + "''" + QString::number( today.day() )
        + "''" + QString::number( today.year() )
        + ".txt";
    return relativeFileName;
}

The fastest - and clearest - version, without calling a custom function, is

QString filename = QDate::currentDate().toString("'data_'MM_dd_yyyy'.txt'");

and when the files should get ordered chronological, then use

QString filename = QDate::currentDate().toString("'data_'yyyy_MM_dd'.txt'");