Есть данные: timestamp 1447440534 и ntp 15704244410975025152, это 13 ноября 2015 18:48:54
Есть функция получения на Си:
#include <iostream> constexpr uint64_t epochdelta = 2208988800L; int main() { uint64_t num= 15704244410975025152ULL; uint32_t seconds = (uint32_t)(num >> 32); std::cout << seconds << " seconds since 1900" << std::endl; std::cout << seconds - epochdelta << " seconds since 1970" << std::endl; return 0; }
Пытаюсь в обратном порядке написать для Питона, пока имеется:
import time timestamp = int(time.time()) print timestamp # >> 1487608712 ntpstamp = int(timestamp + 2208988800) print ntpstamp # >> 3696597512
Далее из 3696597512 вроде как необходимо сделать маску первых 32 бит, пока с масками не сталкивался, нашел информацию про &= 0xfffffff0.
Применение:
ntpstamp &= 0xfffffff0 # >> 3696597512