@Socgrad

Непонятный формат Unix time — что это?

В одной из программ встретился непонятный формат записи времени.

Например, дате 29.01.2014 соответствует такая метка - 130354550430567734
Вряд ли создатели пытались что-то закодировать, скорее, какая-то логика заложена.

Подскажите, кто поймёт, как из этой метки извлекать дату.
  • Вопрос задан
  • 5802 просмотра
Решения вопроса 1
@Socgrad Автор вопроса
Нашёл ответ в документации программы. Если кому-то пригодится подобное вот:

Формат хранения даты принятый в TeamWox - это 64 битный timestamp и соответствует типу INT64 в С++.

Значение даты представляет количество 100-наносекундных интервалов начиная с 1 января 1601 года.

В API Windows это значение соответствует структуре FILETIME и для работы с этой структорой используются такие функции API как FileTimeToSystemTime, GetSystemTimeAsFileTime и другие.

Пример кода преобразования 64 битного таймстампа, который используется в TeamWox в клиентских скриптах JavaScript следующий:
function TimeToInt64(utc)
{
utc = Math.ceil(utc/1000)+11644473600;
return(utc + "0000000");
}

function TimeFromInt64(i64time)
{
if(typeof(i64time)=="string")
{
i64time=parseInt(i64time.substr(0,i64time.length-7));
if(isNaN(i64time))
return(null);
}
else
i64time/=10000000;
//---
return new Date((i64time - 11644473600)*1000);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
кол-во секунд (в вашем случае миллисекунд), прошедших с 1 января 1970 года
ru.wikipedia.org/wiki/UNIX-%D0%B2%D1%80%D0%B5%D0%B...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы