1. 程式人生 > >MFC中時間類的使用以及格式化輸出時間

MFC中時間類的使用以及格式化輸出時間

MFC提供了兩個日期時間類,CTime 和CTimeSpan , CTime表示的是絕對時間,即基於格林威治平均時間(GMT) , CTimeSpan則表示的是時間間隔。

下面我們來寫一個獲取本地時間的MFC小程式。


程式介面如上所示:

首先我們需要新增幾個編輯框控制元件並設定其屬性為不可編輯,然後併為其新增成員變數,其型別為CString

下面我們開始寫獲取的函式程式碼

void CMFCApplication3Dlg::OnBnClickedGet()
{
// TODO:  在此新增控制元件通知處理程式程式碼






//CTime t = CTime::GetCurrentTime();
CTime m_time_get;
m_time_get = CTime::GetCurrentTime();


m_time = m_time_get.Format(_T("%X"));
m_date = m_time_get.Format(_T("%x"));


m_strdatatime = m_time_get.Format(_T("%Y-%m-%d %H-%M-%S 第%w周-%A"));


UpdateData(false);


}

以上程式碼就完成了時間類的初始化並獲取到了當前時間並輸出到MFC程式中了。

在寫這個程式的時候遇到一個   就是

CTime m_time_get;
m_time_get = CTime::GetCurrentTime();

首先構造了這個類,然後當我在初始化這個類的時候,為什麼會得不到GetCurrentTime()函式呢?

通過查MSDN ,發現這個函式是一個靜態函式,只能通過靜態方法來呼叫

以下是官方給出的文件:

// Example for CTime::GetCurrentTime
CTime t = CTime::GetCurrentTime();
2) 格式符號說明


%a —— 星期(縮寫英文),如Fri;

%A —— 星期(全寫英文),如Friday

%b —— 月份(縮寫英文),如Oct

%B —— 月份(全寫英文),如 October

%c —— 月/日/年 時:分:秒,如 10/13/06 19:17:17

%d —— 日期(1 ~ 31)

%H —— 時(24小時制)(0 ~ 23)

%I —— 時(12小時制)(0 ~ 12)

%j —— 一年當中的第幾天,(1 ~ 366)

%m —— 月份(數字 1 ~ 12)

%M —— 分(0 ~ 59)

%p —— 12小時中的A M/PM指示,或者AM,或者PM

%S —— 秒(0 ~ 59)

%U —— 一年中的第幾周,星期日作為每週的第一天(0 ~ 53)


%w —— 星期(數字表示,0 ~ 6,0代表星期日)

%W —— 一年中的第幾周,星期一作為每週的第一天(0 ~ 53)

%x —— 月/日/年,%c的前半段

%X —— 時/分/秒,%c的後半段

%y —— 年份(不帶世紀,如 06)

%Y —— 年份(帶世紀,如 2006)

%z,%Z —— 時區名稱或縮寫,如果時區未知,此字元為空,如“中國標準時間”

%% —— %