只知道CTime有时间限制(1970-2038),为何改用COLEDateTime,将时间弄成2040却不行啊,代码如下:
COleDateTime    ww;
ww=COleDateTime::GetCurrentTime();
AfxMessageBox(ww.Format("%Y-%m-%d %H:%M:%S"));

解决方案 »

  1.   

    VC6的CTime是,但VC7.1中CTime类已经2038的问题了。
      

  2.   

    多谢DentistryDoctor,不过现在用VC6,而且没用CTime,用COleDateTime也出问题,而且目前为统一,全是用VC6开发。VC6下如何解决呢?多谢了
      

  3.   

    GetCurrentTime()确实有这个问题, 因为他是用time函数来做的.
    COleDateTime的构造函数不在此列.  正在寻找解决办法.
      

  4.   

    GetLocalTime()
    再构造COleDateTime ?
      

  5.   

    GetLocalTime()
    GetSystemTime()  要计算时区都可以, 然后用再构造COleDateTime
      

  6.   

    SYSTEMTIME st;
    ::GetLocalTime(&st);
    COleDateTime ww(st.wYear,st.wMonth,st.wDay,st.wHour, st.wMinute, st.wSecond);
    AfxMessageBox(ww.Format("%Y-%m-%d %H:%M:%S"));
    具体参考
    typedef struct _SYSTEMTIME { 
        WORD wYear; 
        WORD wMonth; 
        WORD wDayOfWeek; 
        WORD wDay; 
        WORD wHour; 
        WORD wMinute; 
        WORD wSecond; 
        WORD wMilliseconds; 
    } SYSTEMTIME, *PSYSTEMTIME;
      

  7.   

    奇怪了,楼上仁兄在我做的Dialog DEMO中可以运行。但是在我用MFC写的DLL中却异常退出了
      

  8.   

    COleDateTime( const SYSTEMTIME& systimeSrc );SYSTEMTIME st;
    ::GetLocalTime(&st);
    COleDateTime ww(st); //直接用st来构造