Date in File Name

From Qt Wiki
(Redirected from Date-in-File-Name)
Jump to navigation Jump to search

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'");