When converting time from UTC to local time, Windows uses the *current*
state of daylight saving, not one that was active at the time the
original timestamp is "pointing" to.

On 08/27/2013 01:55 PM, Frank Hemer wrote:
> On Tuesday 27 August 2013 10:19:06 Calogero Mauceri wrote:
>> 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
> 
> Daylight savings handling in windows is somehow 'weird'.
> The timestamps of files change when switching the system time from summer 
> time 
> to winter time and vice versa.
> 
> Frank

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to