結(jié)構(gòu):
CTime(
  int nYear,
  int nMonth,
  int nDay,
  int nHour,
  int nMin,
  int nSec,
  int nDST = -1
 //參數(shù)nDST指定是否實(shí)行夏令時(shí),為0時(shí)表示實(shí)行標(biāo)準(zhǔn)時(shí)間,為正數(shù)時(shí)表示實(shí)行夏令時(shí),為負(fù)數(shù)時(shí)由系統(tǒng)自動(dòng)計(jì)算實(shí)行的是標(biāo)準(zhǔn)時(shí)間還是夏令時(shí)。
  );

 =====================================================================
  C++中,CTime 與 CString轉(zhuǎn)換
  CTime m_StartTime1 = CTime::GetCurrentTime();
  CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );
  一.將CString轉(zhuǎn)為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()函數(shù)的優(yōu)勢.
  二.將CTime轉(zhuǎn)換為CString的方法:
  CTime tmSCan = CTime::GetCurrentTime();
  CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");
  這樣得到的日期時(shí)間字符串就是以"2006-11-27 23:30:59"的格式.
  //取得CTime中的日期
  CString cstrDate = tmScan.Format("%Y-%m-%d");
  //取得CTime中的時(shí)間
  CString cstrTime = tmScan.Format("%H:%M-%S");
  sprintf還有個(gè)不錯(cuò)的表妹:strftime,專門用于格式化時(shí)間字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是畢竟小姑娘家心細(xì),她還要調(diào)用者指定緩沖區(qū)的最大長度,可能是為了在出現(xiàn)問題時(shí)可以推卸責(zé)任吧。這里舉個(gè)例子:
  更多更好的sprintf()函數(shù)說明參考:《spirntf,你知道多少?》
  time_t t = time(0);
  //產(chǎn)生"YYYY-MM-DD hh:mm:ss"格式的字符串。
  char s[32];
  strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
  sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,這一對由于從面向?qū)ο?/a>哪里得到了贊助,用以寫出的代碼更覺優(yōu)雅
=====================================================================

獲取時(shí)間及時(shí)間參數(shù)方法:
static CTime WINAPI GetCurrentTime( );
  獲取系統(tǒng)當(dāng)前日期和時(shí)間。返回表示當(dāng)前日期和時(shí)間的CTime對象。 
CString Format(LPCTSTR pszFormat) const;
  將CTime對象中的時(shí)間信息格式化為字符串。參數(shù)pszFormat是格式化字符串,與printf中的格式化字符串類似,格式化字符串中帶有%前綴的格式碼將會(huì)被相應(yīng)的CTime時(shí)間分量代替,而其他字符會(huì)原封不動(dòng)的拷貝到返回字符串中。格式碼及含義如下:
  %a:周的英文縮寫形式。
  %A:周的英文全名形式。
  %b: 月的英文縮寫形式。
  %B:月的英文全名形式。
  %c: 完整的日期和時(shí)間。
  %d:十進(jìn)制形式的日期(01-31)。
  %H:24小時(shí)制的小時(shí)(00-23)。
  %I: 12小時(shí)制的小時(shí)(00-11)。
  %j: 十進(jìn)制表示的一年中的第幾天(001-366)。
  %m: 月的十進(jìn)制表示(01-12)。
  %M:十進(jìn)制表示的分鐘(00-59)。
  %p: 12小時(shí)制的上下午標(biāo)示(AM/PM)。
  %S: 十進(jìn)制表示的秒(00-59)。
  %U: 一年中的第幾個(gè)星期(00-51),星期日是一周的第一天。
  %W: 一年中的第幾個(gè)星期(00-51),星期一是一周的第一天。
  %w: 十進(jìn)制表示的星期幾(0-6)。
  %Y: 十進(jìn)制表示的年。

      CTime(const SYSTEMTIME& st,int nDST = - 1) ;
  以一個(gè)SYSTEMTIME結(jié)構(gòu)體變量來構(gòu)造CTime對象。SYSTEMTIME結(jié)構(gòu)體也是我們對日期時(shí)間的常用表示方式。參數(shù)st為以本地時(shí)間表示的SYSTEMTIME對象,參數(shù)nDST同上。
  int GetYear( ) const;
  獲取CTime對象表示時(shí)間的年份。范圍從1970年1月1日到2038年(包括2038年)1月18日。
  int GetMonth( ) const;
  獲取CTime對象表示時(shí)間的月份。范圍為1到12。
  int GetDay( ) const;
  獲取CTime對象表示時(shí)間的日期。范圍為1到31。
  int GetHour( ) const;
  獲取CTime對象表示時(shí)間的小時(shí)。范圍為0到23。
  int GetMinute( ) const;
  獲取CTime對象表示時(shí)間的分鐘。范圍為0到59。
  int GetSecond( ) const;
  獲取CTime對象表示時(shí)間的秒。范圍為0到59。
  int GetDayOfWeek( ) const;
  此函數(shù)的返回值表示CTime對象代表的是星期幾,1表示是周日,2表示是周一,以此類推。
 
操作與比較:
CTime operator +(CTimeSpan timeSpan) const;
  將CTime對象和CTimeSpan對象相加,返回一個(gè)CTime對象。實(shí)際意義就是在一個(gè)時(shí)間的基礎(chǔ)上推后一個(gè)時(shí)間間隔,得到一個(gè)新的時(shí)間。
CTime operator -(CTimeSpan timeSpan) const;
  將CTime對象和一個(gè)CTimeSpan相減,返回一個(gè)CTime對象。實(shí)際意義就是在一個(gè)時(shí)間的基礎(chǔ)上提前一個(gè)時(shí)間間隔,得到一個(gè)新的時(shí)間。
CTimeSpan operator -(CTime time) const;
  將該CTime對象和另一個(gè)CTime對象相減,返回一個(gè)CTimeSpan對象。實(shí)際意義就是計(jì)算兩個(gè)時(shí)間點(diǎn)的間隔,得到一個(gè)CTimeSpan對象。
CTime& operator +=(CTimeSpan span);
  為該CTime對象增加一個(gè)span表示的時(shí)間間隔。
CTime& operator -=(CTimeSpan span);
  為該CTime對象減去一個(gè)span表示的時(shí)間間隔。
CTime& operator =(__time64_t time);
  為該CTime對象賦予一個(gè)新的時(shí)間值。
  簡單說下剩下的幾個(gè)重載i運(yùn)算符:
  operator == : 比較兩個(gè)絕對時(shí)間是否相等。
  operator != : 比較兩個(gè)絕對時(shí)間是否不相等。
  operator > : 比較兩個(gè)絕對時(shí)間,是否前一個(gè)大于后一個(gè)。
  operator < : 比較兩個(gè)絕對時(shí)間,是否前一個(gè)小于后一個(gè)。
  operator >= : 比較兩個(gè)絕對時(shí)間,是否前一個(gè)大于等于后一個(gè)。
  operator <= : 比較兩個(gè)絕對時(shí)間,是否前一個(gè)小于等于后一個(gè)