2012-09-26 2 views
2

시스템 명령 "date"를 통해 시스템 날짜를 설정하기 위해 64 비트 타임 스탬프 (미국 시간)를 날짜 문자열로 변환하고 싶습니다. 이것은 잘 작동하지만 내 문제가C++ 64 비트 타임 스탬프에서 32 비트 time_t

char loc_ach_buf[25]; 
uint64_t loc_ui64_TimeStamp_us; 
time_t loc_t_TimeStamp_s; 
...   
loc_t_TimeStamp_s = loc_ui64_TimeStamp_us/1000000; 
strftime(loc_ach_buf, sizeof(loc_ach_buf), "date %Y%m%d%H%M.%S", gmtime(&loc_t_TimeStamp_s)); 
system(loc_ach_buf); 

, 그 time_t 내 시스템에 32 비트 값이 그렇게 문제 Year 2038 problem가있을 것입니다 : 나는 /이 솔루션을 구현 발견했다. 어떤 아이디어가 이것을 해결하는 방법? 아니면 strftime에 대한 대안이 있습니까?

+0

2000 년 기억

당신의 CRT는 64 비트 시간 기능을 지원하지 않는 경우

는 이것 좀 있나요? 지금 2038 문제를 해결하지 마십시오. 2037 년까지 기다리십시오 - 그러면 그들은 지금보다 훨씬 더 많이 지불 할 것입니다.) – PiotrNycz

답변

0

왜 시스템 명령 '날짜'를 사용합니까? SetSystemTime API 호출을 사용하십시오.

+0

대상 시스템 = QNX – flueb

+0

나는 2038 년에있을 것으로 생각하지 않으므로 걱정하지 마십시오. – zmbq

관련 문제