Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-47985

Wrong timestamp for files with timestamp before 1st January 1970

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P4: Low
    • 5.9.0 Beta 2
    • 4.8.x, 5.5.0
    • Core: I/O
    • None
    • 494ced13292fa9d7b572f5310090f6b8fab36e26

    Description

      Create a QFileInfo of a file with timestamp before january 1970 then the timestamp returned by QFileInfo.lastModified() or by QFileInfo.created() is wrong.

      See qfilesystemmetadata_p.h in either src/corelib/io or 5.5.0/QtCore/private and find the 3 lines:

      inline QDateTime QFileSystemMetaData::creationTime() const          { return QDateTime::fromTime_t(creationTime_); }
      inline QDateTime QFileSystemMetaData::modificationTime() const      { return QDateTime::fromTime_t(modificationTime_); }
      inline QDateTime QFileSystemMetaData::accessTime() const            { return QDateTime::fromTime_t(accessTime_); }
      

      The variables creationTime_, accessTime_, modificationTime_ are signed, however the argument in QDateTime::fromTime_t(uint) is unsigned.

      A possible solution is to replace QDateTime::fromTime_t(uint) with QDateTime::fromTime_t(0).addSecs(qint64)

      Thus, a solution is to replace the 3 lines above with:

      inline QDateTime QFileSystemMetaData::creationTime() const          { return QDateTime::fromTime_t(0).addSecs(creationTime_); }
      inline QDateTime QFileSystemMetaData::modificationTime() const      { return QDateTime::fromTime_t(0).addSecs(modificationTime_); }
      inline QDateTime QFileSystemMetaData::accessTime() const            { return QDateTime::fromTime_t(0).addSecs(accessTime_); }
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Eddy Edward Welbourne
            johnrasmussendk John Rasmussen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes