2015-01-14 64 views
0

/DD/YYYY我使用下面的代碼使用C++獲取當前時間在C++

CTime date; 
date = date.GetCurrentTime(); 
this->m_headerDate.SetTime(&date); 

這將讓日期和將其設置爲控制設定的時間在MFC日期控件以什麼格式用戶機器使用。但我想將其設置爲僅限mm/dd/yyyy的格式。 在MFC中應該有這樣做的一些方法。有沒有任何實用功能?

感謝,

+1

爲什麼不使用的ctime庫它已經給你 –

回答

1

如果你在談論得到的日期/時間特定的文字表述,可以用strftime()以許多不同的方式,包括在你的問題中指定的一個格式化的日期。

您需要使用ctime標題中的設施,才能使用time_t類型的變量。所以你可以切換到使用那些時間,或者我相信CTime::GetTime()會給你一個。

但是,如果你在談論迫使控制來顯示它的日期/時間以特定的格式,這就是控制本身的屬性。例如,CDateTimeCtrl提供了一個SetFormat()方法,該方法將修改其顯示其數據的方式。

+0

如果Strptime()是在不同的圖書館嗎?我更喜歡用CTIME做。我發現了一個CTIME函數調用格式,我用,如果我能得到想要的格式,不論系統的日期 –

+0

@Sri,這是_standard_ C++玩,你只需要包含頭。你可以繼續使用'CTime',因爲它有一個功能,可以給你相應的'time_t'。 – paxdiablo

1

沒有MFC:

#include <iostream> 
#include <ctime> 

using namespace std; 

int main() { 
    const int MAXLEN = 80; 
    char s[MAXLEN]; 
    time_t t = time(0); 
    strftime(s, MAXLEN, "%m/%d/%Y", localtime(&t)); 
    std::cout << s << '\n'; 
} 

Compiled Code

隨着MFC:

這個函數格式化日期的日期字符串指定的區域設置。該函數格式化指定日期或本地系統日期。在CString可變

int GetDateFormat(
    LCID Locale, 
    DWORD dwFlags, 
    CONST SYSTEMTIME* lpDate, 
    LPCTSTR lpFormat, 
    LPTSTR lpDateStr, 
    int cchDate 
); 

change LPCTSTR lpFormat to MM:dd:yyyy 
0

這裏我存儲值試試這個代碼:

CString strTime; 
CTime date; 
date = GetCurrentTime(); 
strTime = date.Format(_T("%m/%d/%Y")); 
0

我發現這樣做的方式......不知道這不過是最簡單的方法 由於我們已經有了日期時間控件,所以我們只能使用DatetimeControl的Setformat函數。 PFB的一個例子

CDateTimeCtrl m_DateTimeCtrl; 
    m_DateTimeCtrl.SetFormat(_T("MM/dd/yyyy")); 

以上將設置它的格式爲所需的01/14/2015。感謝Paxdiablo,Himanshu和Irrational Person提供的信息。他們確實用不同的選擇指向了正確的方向。