我有以下代码行:

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


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

最佳答案

您看到的原因是:


  如果path参数中描述的文件不存在,则此方法将返回公元1601年1月1日午夜12:00(C.E.)协调世界时(UTC),已调整为本地时间。
  
  Reference


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

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

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


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

关于c# - 使用GetLastWriteTime时显示不正确的年份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8852615/

10-10 02:44