为什么 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 函数进行了比较。
所以我有一个文件..
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 函数进行了比较。