Причина, по которой вы это видите, заключается в том, что:
Если файл, описанный в параметре пути, не существует, этот метод возвращает 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
для сопоставления виртуального пути с физическим путем.