NTFS File Time Changes With Daylight Savings

I run a Windows NT system on a spare computer and have setup the disk with a NTFS file system to take advantage of the fault tolerant features of NT. The system was setup to automatically adjust for daylight savings time. On April 6 I noticed that all the files stored on this volume had their modification times advanced by one hour. Some specific files had their time decremented by a full 9 hours (this being possibly another bug).

My Clone Directory shareware program uses the file modification date-time stamp to determine when a file needs to be updated and during a routine backup I noticed that it started to replace all the files on the backup. The backup was being done on a Windows 95 computer accessing the NT system on the network. The result from running the program directly on the NT system would have been the same.

For example, suppose I created a file on April 3, 1997 at 10:25 AM. On April 4th I could open the windows explorer and see the same file date and time. On April 6th I could open the explorer and see a date of April 3, 1997 at 11:25 AM.

What is going on here? Further analysis determined that Windows NT stores the file date-time in GMT on NTFS volumes. The time zone settings are used to adjust the date and time for display in the local zone. When daylight savings time is automatically adjusted, Windows NT will add an extra hour to this adjustment. It uses local time on FAT volumes and doesn't perform any modifications on the time for display.

The correct solution to this problem would be to display files created outside of daylight savings time without the extra hour adjustment. Files created when daylight savings time is in effect could then be adjusted by the extra hour. This solution would add extra overhead to the file date-time routines in the WIN32 API because each file would need to be checked and adjusted properly. Instead, Microsoft took the easy way out and incorrectly adjusts all files in the same way.

If you use programs that use the file date-time to perform processing you may need to take this adjustment into consideration. I have a program that saves sawmill shift information and uses the date-time stamp to display the shift time for the file. It can also dump the records into a database. If I use the file date-time for the database records, they may be out of time by an hour.

Microsoft doesn't consider this a bug and possibly intends to include it in future revisions to the way Windows NT processes the FAT file system date-time. You can find out further information on this problem in these Microsoft KBASE documents:

Q128126 FileTimeToLocalFileTime() Adjusts for Daylight Saving Time 

Q129574 Time Stamp Changes with Daylight Savings

© James S. Gibbons 1987-2015