知道某个时区的时间和时区的ID,如何转换成Local 时间?

解决方案 »

  1.   

    什么ID,你这个ID怎么获得到的?
      

  2.   

    <startDate>12/30/2008 13:00:00</startDate>
    <timeZoneID>45</timeZoneID>
    <timeZone>GMT+08:00, China (Beijing)</timeZone>
      

  3.   

    if(::GetTimeZoneInformation(&tzinfo) == TIME_ZONE_ID_UNKNOWN)
    {
    //if timezone returns 0 then return false.
    /*break;*/
    } BOOL bRet = SystemTimeToTzSpecificLocalTime(&tzinfo, &(it->stCreateTime), &stLocalTime);
    if(bRet == FALSE)
    {
    dwLastError = GetLastError();
    strErrMsg.Format(L"The error code is 0x%08x", dwLastError);
    AfxMessageBox(strErrMsg);
    }
      

  4.   

    “GMT+08:00”,把时间减去08:00就是UTC时间了。
      

  5.   

    HANDLE   hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0   );  
      PROCESSENTRY32   procentry=sizeof(PROCESSENTRY32);  
      BOOL   bFlag=Process32First(   hSnapShot,   &procentry   )   ;  
      while(   bFlag   )  
      {  
                  if(stricmp(procentry.szExeFile,"你的程序名")==0)  
                          processid=procentry.th32ProcessID;         //找到  
                  bFlag=Process32Next(hSnapShot,&procentry);  
      }  
       
      注意一个程序可能有几个实例同时运行,所以可能同时找到几个ID
      

  6.   

      
    那个,如果单单是时区时间值的转换,可通过加几个小时实现 。 或TzSpecificLocalTimeToSystemTime先转换为UTC,再把UTC转换到其他时间,比如SystemTimeToTzSpecificLocalTime转换为北京时间等等
      

  7.   

    1、不明白失去的ID是什么东西
    2、TzSpecificLocalToSystemTime, SystemTimeToTzSpecificLocalTime
      

  8.   

    就是个SystemTimeToTzSpecificLocalTime的问题。lz可以在MSDN查一下。