Most file systems record time stamps as UTC, and tools convert to the time zone active in the current process (so you can just use TZ=UTC ls -l and get a listing with UTC time stamps).
The FAT based file systems are an exception: these use local time, and convert to UTC when reading, and the time stamp is then converted back to local time for display.
The conversion in the file system layer is a simple offset, while the conversion for display uses the historic time zone information, so a file modified last week will have the DST offset applied to it in the file system layer (because it is active now), and no DST offset applied in the display layer (because it wasn't active at the time).
You can mount FAT based file systems with the tz=UTC option to disable the offset in the file system layer, or time_offset= to specify the number of minutes to adjust, but the file system layer in the kernel does not have the same complex conversion functions that exist for applications.