MFC编程中CTime各种格式转换
MFC编程中CTime各种格式转换
(⼀)获得当前⽇期和时间,并可以转化为 CString
CTime tm=CTime::GetCurrentTime();
CString str=tm.Format("%Y-%m-%d");
或者
SYSTEMTIME systemTime;
::GetLocalTime(&systemTime);
CTime cTimeNow(systemTime);
// 还有⼀个GetSystemTime();
在VC中,我们可以借助CTime时间类,获取系统当前⽇期,具体使⽤⽅法如下:
CTime t = CTime::GetCurrentTime(); //获取系统⽇期
int d=t.GetDay(); //获得⼏号
int y=t.GetYear(); //获取年份
int m=t.GetMonth(); //获取当前⽉份
int h=t.GetHour(); //获取当前为⼏时
int mm=t.GetMinute(); //获取分钟
int s=t.GetSecond(); //获取秒
int w=t.GetDayOfWeek(); //获取星期⼏,注意1为星期天,7为星期六
如果想计算两段时间的差值,可以使⽤CTimeSpan类,具体使⽤⽅法如下:
CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
int iDay=span.GetDays(); //获取这段时间间隔共有多少天
int iHour=span.GetTotalHours(); //获取总共有多少⼩时
int iMin=span.GetTotalMinutes();//获取总共有多少分钟
int iSec=span.GetTotalSeconds();//获取总共有多少秒
(⼆)CString转化为CTime
//转化为CTime
CString strTime="2008-7-2 21:59:11";
COleVariant vtime(strTime);
vtime.ChangeType(VT_DATE);
COleDateTime cOleTime=vtime;
SYSTEMTIME systime;
VariantTimeToSystemTime(cOleTime, &systime);
CTime cTimeFromDB(systime);
(三)CTime 与COleDateTime
CTime是⽆符号long型,范围0-4 2 9 4 9 6 7 2 9 5. 代表从1970年1⽉1⽇之后经过的秒数,所以到了2 0 3 7年它将达到4 2 9 4 9 6 7 2 9 5,从⽽不能再使⽤。
COleDateTime是double类型,占64位。代表从1 9 0 0年1 2⽉3 0号之后的天数(⼩时是天的⼩数部分),⼏千年之内不会溢出.
CTime COleDateTime相互转换:
//COleDataTime—>CTime
COleDateTime cOleTime(1977,4,16,2,2,2);
SYSTEMTIME systime;
VariantTimeToSystemTime(cOleTime, &systime);
CTime cTime(systime);
//CTime—>time_t
time_t tt=cTime.GetTime();
//time_t—>COleDateTime
cstring转为intCOleDateTime cOleTime(tt);
CTime _Variant_t相互转换
SYSTEMTIME systime
CTime cTime(2007,5,7,0,0,0);
cTime.GetAsSystemTime(systime);//转成systime
double dtime;
SystemTimeToVariantTime(&systime,&dtime);
_variant_t var_time(dtime,VT_DATE);//var_time就是转换结果
补:
GetSystemTime:所返回的是UTC.
协调世界时(Coordinated Universal Time,简写作UTC,之前也被拼做Universal Time Coordinated,有时是Universal Coordinated Time)是由国际⽆线电咨询委员会定义和建议采⽤的,并由国际时间局(BIH)负责保持的以国际单位制(SI)秒为单位的时间标度。对与⽆线电规则相关的⼤部分实际应⽤⽽⾔,协调世界时(UTC)与本初⼦午线(经度零度)上的平均太阳时等效。该时间过去以格林威治平均时(GMT)表⽰。
协调世界时使⽤24⼩时制的时钟表⽰,但也可以被转换为12⼩时制的时钟(AM和PM)。UTC⽤于飞⾏和航海,它有时也被称作祖鲁。UTC使⽤阳历
--------------------------------
GetLocalTime:返回的是本地时间,我建议⼀般⽤这个时间来作为你使⽤的时间
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论