2010-04-14 86 views
2

有一个简单的“初学者”的方式,采取使用<ctime>到具有解析本地时间在C++

int month 
int day 
int year 

为它的成员变量Date对象中的当前时间?谢谢。

+2

“标准日期对象”的意思是'time_t'吗? – kennytm 2010-04-14 06:51:16

+0

在这里阅读有关本地时间:http://www.twinsun.com/tz/tz-link.htm – 2010-04-14 07:07:46

+0

Se man(3)localtime – piotr 2010-04-14 07:01:39

回答

4
time_t tt = time(NULL); // get current time as time_t 
struct tm* t = localtime(&tt) // convert t_time to a struct tm 
cout << "Month " << t->tm_mon 
    << ", Day " << t->tm_mday 
    << ", Year " << t->tm_year 
    << endl 

tm结构整型都是基于0(0 =月,1 = 2月),你可以得到各种一日措施,天月(tm_mday),周(tm_wday)和年份(tm_yday)。

2

如果有localtime_r,那么您应该使用localtime_r而不是本地时间,因为这是localtime的可重入版本。

#include <ctime> 
#include <iostream> 

int main() 
{ 
    time_t tt = time(NULL); // get current time as time_t 
    tm tm_buf; 
    tm* t = localtime_r(&tt, &tm_buf); // convert t_time to a struct tm 

    std::cout << "Month " << t->tm_mon 
       << ", Day " << t->tm_mday 
       << ", Year " << t->tm_year 
       << std::endl; 
    return 0; 
}