システムコマンド「date」を使用してシステム日付を設定するために、64ビットのタイムスタンプ(私たちの場合)を日付文字列に変換したいと思います。私はこのソリューションを見つけて実装しました:
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ビット値であるため、2038年問題が発生することです。これを解決する方法はありますか?または、strftimeに代わるものはありますか。