SYSTEMTIME  ct;
GetLocalTime(&ct);str2.Format("%4d-%2d-%2d %2d-%2d-%2d",ct.wYear, ct.wMonth, ct.wDay, ct.wHour, ct.wMinute,ct.wSecond);  例如2008-11-09-01   用上面的程序获得到的日期格式却是2008-11- 9- 1 。0却省掉了   请问我怎么得到 2008-11-09-01 这样子的格式   
上面的程序怎么修改  或者用其他的什么函数获取

解决方案 »

  1.   

    对其进行判断,如果是月日小于10则在前面加0例如:希望对你有帮助CTime time = CTime::GetCurrentTime();
    CString b_date;
    int year,month,day;
    year = time.GetYear();
    month = time.GetMonth();
    day = time.GetDay();
    if(month < 10)
    {
    b_date.Format("%d0%d",year,month);
    if(day < 10)
    {
             b_date.Format("%s0%d",b_date,day);
    }
    else
    {
    b_date.Format("%s%d",b_date,day);
    }}
    else
    {
    if(day < 10)
    {
    b_date.Format("%d%d0%d",year,month,day);
    }
    else
    {
    b_date.Format("%d%d%d",year,month,day);
    }
    }
      

  2.   

    if(month < 10) 

    b_date.Format("%d-0%d",year,month); 
    if(day < 10) 

            b_date.Format("%s-0%d",b_date,day); 

    else 

    b_date.Format("%s-%d",b_date,day); 
    } } 
    else 

    if(day < 10) 

    b_date.Format("%d-%d-0%d",year,month,day); 

    else 

    b_date.Format("%d-%d-%d",year,month,day); 

    }
      

  3.   

    str2.Format("%4d-%02d-%02d %02d-%02d-%02d",ct.wYear, ct.wMonth, ct.wDay, ct.wHour, ct.wMinute,ct.wSecond); //不足位数用'0'补齐
      

  4.   

    //或者用MFC的COleDateTime
    COleDateTime tm;
    tm = COleDateTime::GetCurrentTime();
    CString str;
    str = tm.Format("%Y-%m-%d %H:%M:%S");
      

  5.   

    高手,的确是高手,比我的方法好多了。学习了。
    CSDN论坛果然是卧虎藏龙
      

  6.   

    str2.Format("%4d-%.2d-%.2d %.2d-%.2d-%.2d", ct.wYear, ct.wMonth, ct.wDay, ct.wHour, ct.wMinute,ct.wSecond);