Похоже, что отметка времени diff отправляется в сетевом порядке байтов, поэтому вам нужно преобразовать ее.На * nix (и, возможно, на других) для этого есть ntohl
.
#include <iostream>
#include <ctime>
#include <arpa/inet.h>
int main() {
std::time_t ts_raw = 0xACE62100; // your input
std::time_t ts_nh = ntohl(ts_raw);
std::cout << asctime(gmtime(&ts_nh)); // your input converted
// hardcoded 2000-01-01 00:00:00 UTC epoch
std::time_t epoch_time = 0x386D4380;
std::cout << asctime(gmtime(&epoch_time)); // 2000-01-01 00:00:00
ts_nh += epoch_time;
std::cout << asctime(gmtime(&ts_nh)); // your expected result
}
Вывод
Mon Jan 26 17:09:00 1970
Sat Jan 1 00:00:00 2000
Wed Jan 26 17:09:00 2000