淺陋見解,僅供參考。拋磚引玉,多加指教!
          石正
          一個計算機技術愛好者! 雖然我擁有了系統分析師的證書,但我仍然是一個計算機技術愛好者!
          posts - 119,comments - 73,trackbacks - 0
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          淺陋見解,僅供參考。拋磚引玉,多加指教!

          常用鏈接

          留言簿(15)

          我參與的團隊

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          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 石正 閱讀(12957) 評論(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  回復  更多評論
            

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


          網站導航:
           
          淺陋見解,僅供參考。拋磚引玉,多加指教!
          主站蜘蛛池模板: 南部县| 锦屏县| 若羌县| 汨罗市| 微山县| 三都| 盐亭县| 黔西| 金湖县| 聂荣县| 涞源县| 精河县| 伊吾县| 霍城县| 扶绥县| 仁化县| 万州区| 南澳县| 上高县| 望奎县| 汤阴县| 呼伦贝尔市| 高要市| 临颍县| 永年县| 商南县| 苍梧县| 鄂州市| 石柱| 唐河县| 定日县| 沂水县| 黎平县| 吕梁市| 仁化县| 贵阳市| 和静县| 阿克陶县| 崇阳县| 汤阴县| 东乡县|