我的一个项目中需要修改时间,
就是把所有时间提前1小时,
我在项目中用到很多DateTime的方法如:DateTime.Now.ToString()
DateTime.Now.Year();
DateTime.Today等等。我怎么在一个类里面把DateTime做个修改,
不用每个地方都做修改呢?

解决方案 »

  1.   

    写个类继承DataTime罗,然后改提前一小时罗,然后全部用这个类啦
      

  2.   

    写个基础类,然后写个属性,比如:
    public DateTime NowDateTime
    {
    set{……}
    get{return DateTime.Now.AddHours(1);}
    }这样的,然后需要用到时间的类都继承这个类,就可以直接用NowDateTime了。
      

  3.   

    不要继承,用代理好点
    public class MyDateTime
    {
      private DateTime myDatetime;
      public MyDateTime(){
       myDatetime = DateTime.Now.AddHours(1);}
    //定义一些你需要的函数,如果DataTime可以提供的功能就不用再定义了
      public DateTime MyHours
      {
        get{
           return myDatetime;
         }
      }
    }
      

  4.   

    自己写个类,在这个类中处理时间,然后其他要调用时间的地方不直接调用datetime,而调用你写的类
      

  5.   

    多谢指教,可按上面的办法,
    我还是要替代阿。
    把所有的DateTime替代成MyDateTime,或者NowDateTime....阿
    -
      

  6.   

    DateTime能继承吗?
    写个类不更简单?
      

  7.   

    http://community.csdn.net/Expert/topic/5771/5771627.xml?temp=.9264643
      

  8.   

    DateTime 是值类型,值类型是密封的,不能继承。所以修改源代码是必不可少的。DateTime.Now 替换很容易,最好能替换。如果是做网页,还有一个办法,就是给 response 加个 filter,用正则表达式替换 html 中的时间,不过如果求网页中还有 Now 以外的其他时间,这个办法就不好了。
      

  9.   

    datetime应该是不能继承的!!还是自己写个方法统一调用吧!
      

  10.   

    同意:
    ------------------
    自己写个类,在这个类中处理时间,然后其他要调用时间的地方不直接调用datetime,而调用你写的类
    ------------------
    1.写一个新类
    public class MyDateTime
    {
      public DateTime Today
      {
        get{
           return ...;
         }
      }
    }
    2.代替DateTime 为 MyDateTime
    3.编译发现新类缺少的功能
    4.补充新类的功能
    --------------
      

  11.   

    如果是时区的问题,应该:
    用 DateTime.UtcNow 区当前时间或用 DateTime.ToUniversalTime 统一转化为 UTC,程序中传递和储存一律用 UTC 格式,仅显示时用 DateTime.ToLocalTime 转化为本地时间。