2015-03-09 2 views
-1

Так у меня есть файл ..Почему File.GetLastWriteTimeUtc и FileInfo.LastWriteTime возвращают разные значения для GMT?

var myFile = C:\docs\MyFile.pptx 

и когда я заметил, что

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

и

var lastModified = File.GetLastWriteTimeUtc(myFile); 

возвращаются различные значения. Почему это? Значение FileInfo соответствует значению, отображаемому в столбце «Дата публикации Windows». Почему они отличаются? Я бы ожидал, что они вернут точно такую ​​же ценность.

+1

Ваш часовой пояс? 'FileInfo.LastWriteTime', вероятно, возвращает локализованное значение. – Guvante

+1

Ваш вопрос заголовок говорит другой, но ваш код отличается –

+0

@ehsansajjad извините, так оно и было, мое плохое. Исправлено сейчас – user1

ответ

1

Я фактически проверил код в отражатель, и они оба делают одно и то же, а именно:

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

против

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

Я также проверил это и даты одинаковы , Вы, должно быть, случайно сравнили Utc с функцией, отличной от Utc.

+0

Это именно то, что я сделал. – user1

Смежные вопросы