2010-04-14 44 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; 
}