<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::Format,strftimeMFC中自然也有她的同道: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ⅴ免费在线观看| 久久久久亚洲AV综合波多野结衣| 亚洲Av永久无码精品三区在线 | 亚洲国产精彩中文乱码AV| 中文字幕无码亚洲欧洲日韩| 99re6在线视频精品免费| 免费人成在线视频| 中国亚洲女人69内射少妇| 亚洲国产日韩综合久久精品| 成年在线观看免费人视频草莓| 亚洲精品第一综合99久久| 国产极品美女高潮抽搐免费网站| 亚洲精品综合久久中文字幕| 有色视频在线观看免费高清在线直播| 波多野结衣免费在线| 亚洲情XO亚洲色XO无码| 亚洲高清一区二区三区电影| 中文字幕在线观看免费视频| 国产亚洲色视频在线| 国产情侣久久久久aⅴ免费| 精品亚洲aⅴ在线观看| 国产精品九九久久免费视频| 成人免费毛片观看| 一二三区免费视频| 日韩精品成人亚洲专区| 亚洲综合国产成人丁香五月激情 | 精品久久久久久无码免费| 国产精品色午夜视频免费看| 精品多毛少妇人妻AV免费久久| 日本久久久久亚洲中字幕| 久久久久久久久免费看无码| 猫咪www免费人成网站| 免费一级毛片在播放视频| 亚洲国产精品精华液| 亚洲人成色7777在线观看不卡| 美女羞羞免费视频网站| 精品国产亚洲一区二区三区| 三级黄色片免费看|