2014-12-06 1 views
0

주어진 시간과 분으로 시간 (초당 1970 년 1 월)을 얻으려고합니다.C++ 주어진 시간과 분을 가진 에포크 이후의 초 수

주어진 시간이 10이고 주어진 시간이 30이라고 가정하면 이는 오전 10:30입니다. 또한 오늘 날짜에 있다는 가정하에.

2014 12월 오전 10시 30분 0초

6 어떻게 위의 날짜 시대에서 (초)을 얻을 수 있습니다 : 그것은 것 의미?

다음을 시도했지만 결과가 -1입니다.

time_t now = time(0); 
tm *ltm = gmtime(&now); 

struct tm t; 
t.tm_year = 1900 + ltm->tm_year; 
t.tm_mon = 1 + ltm->tm_mon; 
t.tm_mday = ltm->tm_mday; 
t.tm_hour = 10; 
t.tm_min = 30; 
t.tm_sec = 0; 
time_t timeSinceEpoch = mktime(&t); 

timeSinceEpoch는 -1을 반환합니다. 이게 왜 그렇게?

답변

4

당신은 내가 대신 시스템에서 년, 월, 일을 좀하고 싶습니다

time_t t = time(NULL); 
tm* timePtr = localtime(&t);//Getting current time. 

struct tm t = {0};    // Initalize to all 0's 
t.tm_year = timePtr->tm_year; // This is year- 114 (1900+114=2014) 
t.tm_mon = timePtr->tm_mon; //Current Month 
t.tm_mday = timePtr->tm_mday; //Today's date 
t.tm_hour = 10;    //Time you need (10) 
t.tm_min = 30;     //Minutes you need (30) 
t.tm_sec = timePtr->tm_sec; //Current second 
time_t timeSinceEpoch = mktime(&t); 
+0

을 다음과 같이 mktime()를 사용할 수 있습니다. 변수를 통해 시간, 분 및 초 필드 만 설정됩니다. 왜 tm_year = 114인지 알 수 있습니까? – Wallace

+0

@Wallace :: 나는 당신의 필요를 충족시키기 위해 코드를 편집했다. 또한 tm_year는 1900 년 이후의 연도입니다. –

+0

감사. 내 결과로 1417833000을 얻고있다. 이 올바른지? 결과를 확인할 수있는 방법이 있습니까? 나는 gmtime을 사용하고 있습니다. gmtime과 localtime 사이에 차이점이 있습니까? 내 시간대는 GMT + 8입니다. – Wallace

관련 문제