<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    淺陋見解,僅供參考。拋磚引玉,多加指教!
    石正
    一個計算機技術愛好者! 雖然我擁有了系統分析師的證書,但我仍然是一個計算機技術愛好者!
    posts - 119,comments - 73,trackbacks - 0
    C++中,CTime 與  CString轉換
    CTime m_StartTime1 = CTime::GetCurrentTime();
    CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );

     使用sprintf及sscanf函數進行CString與CTime之間的轉換

     

    一.將CString轉為CTime的幾種方法

    CString   timestr   =   "2000年04月05日";  
      int   a,b,c   ;  
      sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);  
      CTime   time(a,b,c,0,0,0);    


    --------or - ---------------------

     CString   s("2001-8-29   19:06:23");  
      int   nYear,   nMonth,   nDate,   nHour,   nMin,   nSec;  
      sscanf(s,   "%d-%d-%d   %d:%d:%d",   &nYear,   &nMonth,   &nDate,   &nHour,   &nMin,   &nSec);  
      CTime   t(nYear,   nMonth,   nDate,   nHour,   nMin,   nSec);

    ---- or ------------------------
    CString   timestr   =   "2000年04月05日";  
      int   year,month,day;  
      BYTE   tt[5];  
      //get   year  
      memset(tt,   0,   sizeof(tt));  
      tt[0]   =   timestr[0];  
      tt[1]   =   timestr[1];  
      tt[2]   =   timestr[2];  
      tt[3]   =   timestr[3];  
      year=   atoi((char   *)tt);  
       
      //get   month  
      memset(tt,   0,   sizeof(tt));  
      tt[0]   =   timestr[6];  
      tt[1]   =   timestr[7];  
      month   =   atoi((char   *)tt);  
       
      //get   day  
      memset(tt,   0,   sizeof(tt));  
      tt[0]   =   timestr[10];  
      tt[1]   =   timestr[11];  
       
      CTime   time(year,month,day,0,0,0);

    從上面來看,很明顯使用sscanf()函數的優勢.

     

    二.將CTIme轉換為CString的方法:

    CTime  tmSCan = CTime::GetCurrentTime();

    CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");

    這樣得到的日期時間字符串就是以"2006-11-27 23:30:59"的格式.這是不是很方便呢?

     //取得CTime中的日期
     CString cstrDate = tmScan.Format("%Y-%m-%d");

     //取得CTime中的時間
     CString cstrTime = tmScan.Format("%H:%M-%S");

              sprintf還有個不錯的表妹:strftime,專門用于格式化時間字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是畢竟小姑娘家心細,她還要調用者指定緩沖區的最大長度,可能是為了在出現問題時可以推卸責任吧。這里舉個例子:

     

     更多更好的sprintf()函數說明參考:《spirntf,你知道多少?

    http://blog.csdn.net/steedhorse/archive/2005/03/25/330206.aspx

     

     

    time_t t = time(0);

          //產生"YYYY-MM-DD hh:mm:ss"格式的字符串。

     

    char s[32];

    strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));

    sprintfMFC中也能找到他的知音:CString::FormatstrftimeMFC中自然也有她的同道:CTime::Format,這一對由于從面向對象哪里得到了贊助,用以寫出的代碼更覺優雅。



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1417748

    posted on 2007-04-18 09:47 石正 閱讀(12954) 評論(5)  編輯  收藏

    FeedBack:
    # re: C++中,CTime 與 CString轉換
    2008-07-11 09:27 | 企業即時通訊
    剛好有用,謝謝你。  回復  更多評論
      
    # re: C++中,CTime 與 CString轉換
    2008-08-15 15:21 | 企業即時通訊
    謝謝,好文章。  回復  更多評論
      
    # re: C++中,CTime 與 CString轉換
    2008-08-15 18:00 | XEIM
    我第三次來這里。  回復  更多評論
      
    # re: C++中,CTime 與 CString轉換
    2009-08-17 17:25 | yushi
    CTime tmSCan = CTime::GetCurrentTime();

    CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");

    為什么和我的系統時間有偏差?

    yushi207@gmail.com  回復  更多評論
      
    # re: C++中,CTime 與 CString轉換
    2009-08-24 21:38 | jjjjjjjjjjjjjj
    jjjjjjjjjjjjjjjj  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    淺陋見解,僅供參考。拋磚引玉,多加指教!
    主站蜘蛛池模板: 一级成人a免费视频| 一本一道dvd在线观看免费视频 | 亚洲一区免费观看| 久久国产乱子伦精品免费强| 伊伊人成亚洲综合人网7777| 成在线人免费无码高潮喷水| 亚洲中文久久精品无码| 免费观看在线禁片| 久久精品视频亚洲| 亚洲视频免费观看| 亚洲国产精品免费观看| 免费观看的av毛片的网站| 久久久亚洲精华液精华液精华液 | 四虎永久在线观看免费网站网址 | 国产免费一区二区三区不卡| 亚洲大尺度无码无码专区| 久久九九全国免费| 亚洲综合免费视频| 妞干网在线免费观看| 真正全免费视频a毛片| 亚洲午夜久久久久妓女影院| 日本在线看片免费人成视频1000| 亚洲成人福利在线观看| 成人毛片免费视频| jizz18免费视频| 亚洲视频在线观看地址| 日韩成全视频观看免费观看高清| 免费看内射乌克兰女| 久久精品国产精品亚洲蜜月| 4399好看日本在线电影免费| 亚洲a∨无码一区二区| 亚洲中文字幕无码久久2017| 8x成人永久免费视频| 久久人午夜亚洲精品无码区| 国产亚洲一区二区三区在线| 男人的好看免费观看在线视频| 福利片免费一区二区三区| 亚洲免费视频网站| 永久免费看mv网站入口| 最近免费中文字幕中文高清| 91午夜精品亚洲一区二区三区|