为什么 File.GetLastWriteTimeUtc 和 FileInfo.LastWriteTime return 的 GMT 值不同?

Why do File.GetLastWriteTimeUtc and FileInfo.LastWriteTime return different values for GMT?

所以我有一个文件..

var myFile = C:\docs\MyFile.pptx

当我注意到时

FileInfo fi = new FileInfo(myfile);
var lastModified = fi.LastWriteTime;

var lastModified = File.GetLastWriteTimeUtc(myFile);

return 不同的值。为什么是这样? FileInfo 值对应于 Windows Explorer Date Modified 列中显示的值。他们为什么不同?我原以为他们会 return 完全相同的值。

我实际上检查了 Reflector 中的代码,它们都做完全相同的事情,即:

return DateTime.FromFileTimeUtc((long) data.ftLastWriteTimeHigh << 32 | (long) data.ftLastWriteTimeLow);

return DateTime.FromFileTimeUtc((long) this._data.ftLastWriteTimeHigh << 32 | (long) this._data.ftLastWriteTimeLow);

我也测试过了,日期是一样的。您一定是不小心将 Utc 与非 Utc 函数进行了比较。