CTime类,CTime 与 CString转换

CTime类,CTime 与 CString转换

1 获取当前时间
CTime time = CTime::GetCurrentTime();
其中GetYear( ),GetMonth( ), GetDay( ), GetHour( ), GetMinute( ), GetSecond( ), GetDayOfWeek( ) 返回整型(int)对应项目
例:
int NowMonth = time1.GetMonth();
2 两个时间之间的比较
BOOL operator ==( CTime time ) const;
BOOL operator !=( CTime time ) const;
BOOL operator <( CTime time ) const;
BOOL operator >( CTime time ) const;
BOOL operator <=( CTime time ) const;
BOOL operator >=( CTime time ) const;
例:
CTime t1 = CTime::GetCurrentTime();
CTime t2 = t1 + CTimeSpan( 1, 0, 0, 0 ); // 1 Day later
ASSERT( t1 != t2 );
ASSERT( t1 < t2 );
ASSERT( t1 <= t2 );
3 时间差
CTime operator +( CTimeSpan timeSpan ) const;
CTime operator - ( CTimeSpan timeSpan ) const;
CTimeSpan operator - ( CTime time ) const;
例:
CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 Ctimes
ASSERT( ts.GetTotalSeconds() == 86400L );
ASSERT( ( t1 + ts ) == t2 ); // Add a CTimeSpan to a CTime.
ASSERT( ( t2 - ts ) == t1 ); // Subtract a CTimeSpan from a CTime.
4 时间格式化
将当前时间格式化 CString date = time.Format("%Y-%m-%d %H:%M:%S %W-%A");
结果为:2006-10-13 17:23:47 41-Friday

 

----------------------------------------

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");

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值