用c ++解析localtime

时间:2010-04-14 06:45:13

标签: c++ ctime

使用<ctime>将当前时间用于具有

的Date对象是否有一种简单的“初学者”方式
int month
int day
int year

它的成员变量?感谢。

2 个答案:

答案 0 :(得分: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月,1 = 2月),你可以得到各种日测量,每月一天(tm_mday),一周({{1} })和年(tm_wday)。

答案 1 :(得分:2)

如果有localtime_r,那么你应该使用 localtime_r 而不是localtime,因为这是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;
}