在夏令时以外修改的文件在 Windows 7 资源管理器中显示标准时间

在夏令时以外修改的文件在 Windows 7 资源管理器中显示标准时间

我有 Windows 7 Professional,有自动更新功能(所以应该已经应用了所有补丁)。我位于 EST/EDT 时区(纽约)。控制面板时间框已选中“使用 DST”。DST 刚刚在周日“向前推进”。我尝试应用去年 8 月的补丁(KB2863058),它说已经安装。

在命令提示符(DOS 命令行)框中,“dir”给出了我刚刚更新的文件以及两个月前(标准时间)更新的文件的正确时间。屏幕右下角的时钟给出了正确的时间。但是,Windows 资源管理器给出了上次在标准时间修改的文件的一个小时前的时间。

例如,

dir C:\Users\Phil\Desktop\content

给我

01/24/2014  12:36 PM    4,524  ContentList.txt

当 Windows 资源管理器桌面 > 内容显示

ContentList.txt    1/24/2014 11:36 AM  Text Document

它差了一个小时,好像没有应用 DST。这是一个已知的 Windows 错误吗?我还没有看到任何关于它的报告。由于“dir”和 WinExp 对刚刚修改的文件一致,我认为是 WinExp 出了问题。我使用 Perl 的 -M $filename(带 $^T)来获取文件的使用年限(以天数表示),手动计算使用年限会得出比 WinExp 晚两个小时的时间(上例中的 13:36)。我假设 1 小时是 DST 造成的,但其他时间呢?

总而言之,对于同一个文件(最后修改时间为标准时间):

Windows Explorer   11:36 AM
Command Prompt     12:36 PM
Perl -M operator    1:36 PM

对于今天修改的文件,所有三个时间都一致。谁对谁错?我认为显示时间的各种方式应该就是否应用 DST 达成一致。

答案1

这似乎是命令提示符DIR结果的一个错误,而不是 Windows 资源管理器的一个错误。

复制起来非常容易:

  • 将时钟调回夏令时开始之前,例如 3 月 1 日。
  • 创建或修改文件。
  • 检查时钟的时间,然后检查 Windows 资源管理器中的文件时间DIR
  • 将您的时钟调回今天的正确时间。
  • 再次检查文件时间。您将看到 Windows 资源管理器保留了正确的时间,但DIR显示的时间提前了一个小时。

在 NTFS 上,文件时间均以 UTC 格式存储,因此该命令似乎DIR采用了当前的在将文件时间从 UTC 转换为本地时间时,应考虑日期的 DST。它应该使用文件的做出该决定的时间。

相关内容