安装 Windows 的文件系统是否会影响 Windows 注册表配置单元中的时间戳的时区设置?

安装 Windows 的文件系统是否会影响 Windows 注册表配置单元中的时间戳的时区设置?

这个问题与注册表文件本身的文件系统时间戳无关。

据我所知,当 Windows 安装在 NTFS 文件系统上时,Windows 注册表中的时间戳将存储为 UTC 时间戳。当 Windows 安装在 FAT 文件系统(例如 FAT32)上时,这种情况会改变吗?时间戳是否存储为本地时间,还是仍为 UTC?

问题也可以简化:Windows 注册表配置单元中的时间戳是否始终是 UTC 时间戳?

答案1

FAT 使用 16 位值的 MAC 时间戳(与 NTFS MACB 不同)。7 位与年份相关,4 位与月份相关,5 位与日期相关。由于年份范围限制为 7 位,因此 FAT32 文件系统的年份范围在 1980 年至 2107 年之间。虽然这涵盖了日期和年份,但时间遵循相同的概念,使用 16 位值表示小时、分钟和秒。由于一天中只有有限的时间,因此这个区域并不像我们在 32 位值的组合中看到的年份部分那么简单。

FAT64/exFAT 仍然受到其他版本 FAT 所遵循的相同规则的限制。这些规则的例外是 FAT64/exFAT 支持以 UTC 格式存储时间戳时间,而不是当地时间。然而,与 NTFS 不同,NTFS 中的 UTC 时间戳以 100ns 为间隔存储为 64 位数字并以纪元时间为单位。此外,时间分辨率设置为 1601 年 1 月 1 日。

从注册表角度来看,上次访问时间 (A) 是 Windows XP 与更高版本之间一个被忽视的差异领域。据 Microsoft 称,此时间戳由注册表确定为打开或关闭,位于 SYSTEM/CurrentControlSet/Control/FileSystem/NtfsDisableLastAccessUpdate 中。对于 Windows XP,此值默认设置为“0”,这意味着当用户打开文件夹或文件时,A 值会更新。但是,从 Windows Vista/7 开始,Microsoft 将此值切换为“1”,这意味着打开文件和文件夹时,A 时间戳不再更新。

另一件需要注意的相关事项:如果您将文件从 FAT 系统复制到 NTFS 系统,它将保留相同的修改日期,但会将创建日期和时间更改为当前时间。如果剪切并粘贴文件,它将保留相同的修改日期和时间,并将创建日期保持与之前相同。

-编辑- 在评论后完成此操作:

至少从 Windows XP 开始,Windows 注册表配置单元始终是 UTC 时间戳。基块在偏移量 12 处包含 8 位长度的“上次写入时间戳”,该时间戳被视为 UTC 文件时间。

相关内容