时间在计算机(Windows系统)中存储的主要是两种数据类型:long型、double型。long型存储的时间是UTC标准时间。存储时间开始的说法可能会有所不同,但是在VC6.0中编程所得的结果是自1970-1-1 8:00:00开始计算的秒数。还有一种在计算机中表示的时间:FILETIME结构体,该结构体使用两个32位的unsigned long型表示时间,从1601-1-1以来的时间,单位是万分之一毫秒。
两个消息:DTN_DATETIMECHANGE、DTN_DROPDOWN。在点击DateTimePicker控件的下拉按钮之后,首先响应的消息是DTN_DROPDOWN消息,接着会出现日历的日期选择界面,当选择相应的日期之后,将会触发DTN_DATETIMECHANGE消息。
在DTN_DATETIMECHANGE的消息响应函数(OnDatetimechangeDatetimepicker******)中添加如下代码:
CSting strBt;
GetDlgItemText(IDC_DATETIMEPICKER1,strBt);
COleVariant vtime(strBt);
vtime.ChangeType(VT_DATE);
COleDateTime time4(vtime);
SYSTEMTIME stime;
VariantTimeToSystemTime(time4,&stime);
CTime tm(stime);
time_t ttime = tm.GetTime();
CString sstime;
sstime.Format("%ld",ttime);
m_UTCBegin.CString::Format(sstime);
UpdateData(false);
//这段代码主要是获得Date Time Picker控件的日期时间,并且将该时间由CTime类型转换成CString并且在相应的控件中表示出来。
将FILETIME转换为SYSTEMTIME的方法为:
FileTimeToSystemTime(const FILETIME *lpFileTime,LPSYSTEMTEM lpSystemTime);
该函数的返回值为BOOL类型,若转换成功,则返回TRUE,否则返回FALSE。