2015-01-14 39 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提供的信息。他们确实用不同的选择指向了正确的方向。