2012-09-26 216 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年?現在不解決2038問題。等到2037年 - 那麼他們將支付比現在多得多) – PiotrNycz

回答

0

爲什麼使用系統命令'date'?使用SetSystemTime API調用。

+0

目標系統= QNX – flueb

+0

我不認爲它會在2038年左右,所以不要擔心。 – zmbq