C++CTime使用方法
生活随笔
收集整理的這篇文章主要介紹了
C++CTime使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數: ctime 功 能: 把日期和時間轉換為字符串 用 法: char *ctime(const time_t *time); 程序例: #include <cstdio> #include <ctime> int main(void) { time_t t; t=time(&t); printf("Today's date and time: %s\n", ctime(&t)); return 0; } 注:若在linux下使用本函數,需要include <time.h>頭文件 -------------------------------------------------------------------------------------------------------------------- 類: CTime() 創建CTime對象, 使他的時間為當前時間。 類函數: GetMinute() 得到分鐘. GetSecond() 得到秒; GetHour() 得到小時; GetDay() 得到 CTime持有的"天" ; GetMonth() 得到月; GetDayOfWeek() 得到 CTime持有的"天"是一星期中的那一天 ; GetYear() 得到年; GetTime() 返回用 __time32_t 表示的時間; 在VC6下只支持到2039年,也就是2的32次方秒 例: CTime T; int year; T=CTime(2008,8,8,8,8,8); //設置時間為2008年8月8號8時8分8秒 //或者 CTime T =CTime::GetCurrentTime(); //設置為當前時間 year=t.GetYear(); //獲取年份 ===================================================================== C++中,CTime 與 CString轉換 CTime m_StartTime1 = CTime::GetCurrentTime(); CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" ); 一.將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,你知道多少?》 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)); sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,這一對由于從面向對象哪里得到了贊助,用以寫出的代碼更覺優雅
轉載于:https://www.cnblogs.com/owenyang/archive/2012/08/28/3579114.html
總結
以上是生活随笔為你收集整理的C++CTime使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:linux内核驱动中_IO, _IO
- 下一篇: s3c2440移植MQTT