使用GetLastWriteTime时显示不正确的年份

时间:2012-01-13 15:08:51

标签: c# .net asp.net-mvc

我有以下代码行:

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

在资源管理器中,该文件显示为在1/2/2012修改。但是,此代码输出1600-01-02。

1 个答案:

答案 0 :(得分:4)

您看到的原因是:

  

如果path参数中描述的文件不存在,则此方法返回美国俄勒冈州公元1601年1月1日午夜12点,协调世界时(UTC),调整为当地时间。

     

Reference

一旦调整到您的时区;这就是你得到1600-01-02的原因。

我不相信GetLastWriteTime了解虚拟路径。它期待一条物理道路。尝试:

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

您可以使用Server.MapPath将虚拟路径映射到物理路径。