vc有什么api算1970年的毫秒数转换到当前时间,比如java有 SimpleDateFormat.format可以将一个LongLong型的值,比如说1306334020009转为2011年5月X日,X时,X分的格式。

解决方案 »

  1.   

    #include <stdio.h>
    #include <time.h>int main ()
    {
      time_t rawtime;
      struct tm * timeinfo;  time ( &rawtime );
      timeinfo = localtime ( &rawtime );
      printf ( "The current date/time is: %s", asctime (timeinfo) );
      
      return 0;
    }
      

  2.   

    void MillisecondSince1970ToSystemTime(LONGLONG nMillisecond, SYSTEMTIME *lpstTime)
    {
    LARGE_INTEGER liTime;
    liTime.QuadPart = nMillisecond;
    // 先转换为100微秒单位的FILETIME
    liTime.QuadPart *= 10000;
    // FILETIME是1960年开始的,需要和1970年进行转换
    liTime.QuadPart += 116444736000000000;
    // 转换成SYSTEMTIME
    ::FileTimeToSystemTime((LPFILETIME)&liTime, lpstTime);
    }int _tmain(int argc, _TCHAR* argv[])
    {
    // 获取当前时间模拟输入数据
    LONGLONG nFileTime;
    SYSTEMTIME stTime;
    ::GetLocalTime(&stTime);
    ::SystemTimeToFileTime(&stTime, (LPFILETIME)&nFileTime);
    nFileTime -= 116444736000000000;
    nFileTime /= 10000; // 调用转换函数
    MillisecondSince1970ToSystemTime(nFileTime, &stTime); // 输出字符串
    ::printf("%04d-%02d-%02d %02d:%02d:%02d",
    stTime.wYear, stTime.wMonth, stTime.wDay,
    stTime.wHour, stTime.wMinute, stTime.wSecond);
    }