При использовании GetLastWriteTime отображается неверный год - PullRequest
2 голосов
/ 13 января 2012

У меня есть следующая строка кода:

<%= System.IO.File.GetLastWriteTime("~/Views/Home/Index.aspx").ToString("yyyy-MM-dd")  %> 

В Проводнике файл отображается как измененный 1/2/2012. Однако этот код выводит 1600-01-02.

1 Ответ

4 голосов
/ 13 января 2012

Причина, по которой вы это видите, заключается в том, что:

Если файл, описанный в параметре пути, не существует, этот метод возвращает 12:00 полуночи, 1 января 1601 года по Гринвичу (C.E.), всемирное координированное время (UTC), скорректированное на местное время.

Ссылка

Как только это настроено на ваш часовой пояс; вот почему вы получаете 1600-01-02.

Я не верю, GetLastWriteTime понимает виртуальный путь. Он ожидает физического пути. Попробуйте:

<%= System.IO.File.GetLastWriteTime(Server.MapPath("~/Views/Home/Index.aspx")).ToString("yyyy-MM-dd") %>

Вы можете использовать Server.MapPath для сопоставления виртуального пути с физическим путем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...