Форум » Для флейма » Unix epoch time » Ответить

Unix epoch time

Dima: Есть цифирки 1575996305490 Как из них получить дату ? Конвертер https://www.epochconverter.com/ правильно преобразовал GMT: Tuesday, 10 December 2019 г., 16:45:05.490 Мне достаточно просто вытащить дату. Как средствами Harbour это сделать ? PS Это я XML разбираю а там такое живет <N_DATE>1575996305490</N_DATE>

Ответов - 6

Dima: Вроде так ? ctod( "01.01.1970" ) + Days( nUnixTime/1000 ) ? ctod( "01.01.1970" ) + Days( 1575996305490 /1000 ) Вроде верно пашет

Pasha: unix epoch time - это количество секунд после 1.1.1970 В сутках 86400 секунд Переводим сегодняшнюю дату в unix epoch time, без секунд, это будет полночь: (Date()-ctod("01.01.1970"))*86400 = 1575936000 В примере судя по всему даже не секунды, а миллисекунды Обратный перевод: 1575936000/86400+ctod("01.01.1970") или 1575996305490/1000/86400+ctod("01.01.1970")

Pasha: Написали про одно и то же, и результат одинаковый


Dima: Pasha пишет: Написали про одно и то же, и результат одинаковый Спасибо за участие !

Dima: Интересно а как тогда работает функция ? hb_NtoT(<nValue>) ➜ tTimeStamp converts a numeric value nValue (which is evaluated as if being a Unix time value) to a timestamp. Пробнул сунуть ей 1575996305490 и вернула не понятно какую дату

Pasha: По памяти: в харборе время хранится в формате double, где целая часть - юлианские дни, те же, что и для даты, а дробная часть - время Судя по сырцам, эта функция просто преобразует формат Numeric в DateTime, никаким unix epoch time там и не пахнет



полная версия страницы