On 8/26/2013 7:30 PM, Thiago Macieira wrote: > On segunda-feira, 26 de agosto de 2013 17:42:58, Calogero Mauceri wrote: >> QDateTime myDateTime = QDateTime::fromTime_t(f_mtime); >> >> The date time printed doing a myDateTime.toString() is >> >> Wed Dec 5 12:36:18 2007 >> >> >> Retrieving the last modified information using QFileInfo, the result is >> different >> >> QFileInfo fi(filepath); >> QDateTime myDateTime = fi.lastModified(); >> >> I get this result >> >> Wed Dec 5 11:36:18 2007 >> >> That is there is one hour difference. I guess the difference is due to >> the daylight saving management, >> but I can not understand how that management is performed. >> >> Note: if I look at the file properties on Windows dialog, the last >> modified time is shown as >> >> Wed Dec 5 12:36:18 2007 > Ah, Windows... > > The problem might be simply a matter of timezones. The timestamps on files on > Windows are not stored with time_t, but with some Windows-specific data. We > get > a FILETIME back from Win32. > > Anyway, up until Qt 5.2, you cannot trust the output of a QDateTime with > qDebug since it does not include the timezone. You have to ensure that the > dates you're comparing by text are in the same timezone: > > qDebug() << dt.toUTC();
Thanks for your reply. Unfortunately the problem is still there even if I force a toUTC() conversion for both QDateTime, either the one initialized from time_t or the one returned by QFileInfo :/. Similarly QDateTime dtFromTime_t = QDateTime::fromTime_t(mtime).toUTC(); QDateTime dtFromFileInfo = fi.lastModified().toUTC(); int sec = ABS(dtFromTime.secsTo(dtFromFileInfo)); // sec returned is 3600 Calogero -- Calogero Mauceri Software Engineer Applied Coherent Technology Corporation (ACT) www.actgate.com _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest