我的下位机取得了一个自1980.1.1至目前时间的一个8位16进制秒数并发送到上位机,如果我要在上位机VC6中转换为当前的日期和时间,该用什么函数呢?十六进制转为十进制的字符转换,以及把秒转换为当前日期时间,主要是后者有现成函数啊?

解决方案 »

  1.   

    可以自己用time_t,得到对应时间,然后再补上1980 到1900之间的差值
      

  2.   

    可将字符串秒数转换为整形.
    构件一个时间CTime t(1980,1,1)时间,结合CTimeSpan ts3( 秒数); // 秒数seconds
    就可以 t+=ts3;算出当前时间了
      

  3.   

    具体的代码需要理解事件类型存储的意义, 比如
    time_t    储存的是自 1970.1.1 的秒数
    FILETIME  储存的是自 1601.1.1 的 (100nS) 数CTime 封装了...
      

  4.   

    SYSTEMTIME st={0};
    union 
    {
        FILETIME ft;
        ULONGLONG ut;
    }curTime;st.wYear=1980;
    st.wMonth=1;
    st.wDay=1;SystemTimeToFileTime(&st, &curTime.ft);
    curTime.ut+=UInt32x32To64(秒数, 10000000);
    FileTimeToSystemTime(&curTime.ut, &st);  //此时的st即为你所需的日期