时间转换问题,系统得到的DWORD的时间类型从00:00:00, January 1, 1970流过的秒,如何得到2005-12-28 23:56:59

解决方案 »

  1.   

    系统的到时间
    SYSTEMTIME st;
    GetSystemTime(&st);   转化
    CTime t( 1999, 3, 19, 22, 15, 0 ); 
    // 10:15 PM March 19, 1999
    CString s = t.Format( "%A, %B %d, %Y" );
      

  2.   

    系统得到的DWORD的时间类型
    ==你用哪个函数得到的系统时间啊?
    转换成COleDateTime或者CTime类型后,可以用这些类的Format函数得到时间的字符串格式。
      

  3.   

    是啊,你用什么函数得到的结果?如果是用time(NULL)这样的函数的话也是从1900年1月1日0:00:00开始的吧?!如果是的话,见这里:
    http://community.csdn.net/Expert/topic/4461/4461785.xml?temp=.4838526
      

  4.   

    http://ldfren.bosinet.com/download/linux_c/function/04.html#linuxc39
    Linux C
    function()
    参考手册
    其中有你能用到的
      

  5.   

    从00:00:00, January 1, 1970 流过的秒从一个值比如 1135775424,如何把它转成类似2005-12-28 23:56:59 ,真的不会那些复杂的时间类型转换,谢谢
      

  6.   

    #include <time.h>
    #include <afx.h>
    #include <iostream.h>void main()
    {
    CString result;
    CTime tm(1970,1,2,0,0,0);  //这里不知为何不能初始化成1月1日,只好在后面减回一天
    tm+=1135775424;
    result.Format("%d-%d-%d %d:%d:%d",
    tm.GetYear(),
    tm.GetMonth(),
    tm.GetDay()-1,
    tm.GetHour(),
    tm.GetMinute(),
    tm.GetSecond()
    );
    cout<<result<<endl;
    }
      

  7.   

    试了一下,发现只要是1970以前的年份(包括1970年)日期初始化成1月1日都会出错,上面的代码其实也有问题,如果结果是X月1日的话再减1,得到的日期就有问题了,改成如下就保险了:
    #include <time.h>
    #include <afx.h>
    #include <iostream.h>void main()
    {
    CString result;
    CTime tm(1970,1,2,0,0,0);  //这里只好初始化成1月2日,然后在后面减回一天
    tm+=(1135775424-86400);    //改成在这里减去86400秒,即一天整
    result.Format("%d-%d-%d %d:%d:%d",
    tm.GetYear(),
    tm.GetMonth(),
    tm.GetDay(),
    tm.GetHour(),
    tm.GetMinute(),
    tm.GetSecond()
    );
    cout<<result<<endl;
    }