2013-07-17 1 views
-1

은 내 응용 프로그램에서 단일 값으로 초, 분, 시간, 일, 월 및 년을 으로 가져오고이 값에서 유닉스 타임 스탬프를 생성해야합니다.C++에서 유닉스 타임 스탬프를 생성하는 방법은 무엇입니까?

나는 C 함수로 타임 스탬프를 직접 가져 오는 방법을 찾았습니다.

C++에서 주어진 값으로 유닉스 타임 스탬프를 생성하려면 어떻게해야합니까?

+1

[mktime] (http://www.cplusplus.com/reference/ctime/mktime/)에 대한 설명서를 읽으십시오. 원하는대로 작동합니다. –

답변

5

중 하나를 C++ 표준 라이브러리 형태로도 주문 가능합니다 std::mktime, C 라이브러리 함수를 사용 : 더 C++ 풍미를 들면, Boost.DateTime의 Gregorian date system 같은 타사 라이브러리를 사용

#include <ctime> 

std::tm tm; 
tm.tm_sec = seconds; 
tm.tm_min = minutes; 
tm.tm_hour = hours; 
tm.tm_mday = day; 
tm.tm_mon = month - 1; // Assuming your month represents Jan with 1 
tm.tm_year = year - 1900; // Assuming your year is the AD year number 

std::time_t time = std::mktime(&tm); 

또는.

+0

부팅은 불행히도 옵션이 아닙니다. 그래서 저는 C-lib로 작업해야합니다. 덕분에 ! – baam

+0

대부분의 경우 작동하지만 [설명서에 이것이 정의되지 않은 동작이라고 나와 있습니다] (http://www.cplusplus.com/reference/ctime/time_t/)! –

관련 문제