有这样一种64位的日期/时间格式,比如值为0x01C46325D5B85130,应该如何转换为XXXX年XX月XX日XX点XX分XX秒啊。谢谢了

解决方案 »

  1.   

    用64位的日期值作为参数创建一个COleDateTime对象,然后用COleDateTime::Format.
      

  2.   

    FILETIME ftime;
    __int64 nTime64;
    nTime64 = 0x01C46325D5B85130;
    CopyMemory(&ftime, &nTime64, sizeof(nTime64));
    COleDateTime datetime(ftime);
    CString strTime;
    int nYear = datetime.GetYear();
    int nMonth = datetime.GetMonth();
    int nDay = datetime.GetDay();
    int nHour = datetime.GetHour();
    int nMin = datetime.GetMinute();
    int nSec = datetime.GetSecond();
    strTime.Format("%d年%d月%d日%d点%d分%d秒", 
                nYear, nMonth, nDay, nHour, nMin, nSec);
      

  3.   

    CString GetTimeString(__int64 nTime)
    {
       FILETIME ft;
       FILETIME localFt;
       SYSTEMTIME st;
       CopyMemory(&ft,&nTime,sizeof(nTime));
       FileTimeToLocalFileTime(&ft,&localFt);
       FileTimeToSystemTime(&localFt,&st);
       CString sTime;
       sTime.Format("%04d年%02d月%02d日%02d点%02d分%02d秒",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
       retur sTime;
    }
      

  4.   


    我再贴:
    SYSTEMTIME *curDateTime=new SYSTEMTIME;
    ::GetLocalTime(curDateTime);
    DWORD year=curDateTime->wYear;
    DWORD month=curDateTime->wMonth;
    DWORD day=curDateTime->wDay;
    DWORD hour=curDateTime->wHour;
    DWORD minute=curDateTime->wMinute;
    DWORD second=curDateTime->wSecond;
    DWORD millisecond=curDateTime->wMilliseconds;
    CString sCurTime ;
    sCurTime.Format("\\T%d%d%d%d%d%d%d.trs", year, month, day, hour, minute, second, millisecond);
    //TRACE0(sCurTime);
      

  5.   

    strCString="2003-10-27 6:24:37"; //CString--->COleDateTime
    COleVariant vtime(strCString);
    vtime.ChangeType(VT_DATE);
    COleDateTime time4=vtime;COleDateTime time1(1977,4,16,2,2,2); //COleDataTime--->CTime
    SYSTEMTIME systime;
    VariantTimeToSystemTime(time1, &systime);
    CTime tm(systime);time_t time2=tm.GetTime(); //CTime--->time_t
    COleDateTime time3(time2); //time_t--->COleDateTime