Преобразование unixtime в 1С Дата (Unix Time Stamp)

Добрый день! Ребят, ну помогите победить беду. Пытаюсь из unixtime получить читабельную дату.
Делаю так :

Дата1С = дата(1970,1,1,1,0,0) + 637746530810000000;  

Получаю 01.01.0001 0:00:00 , а должно быть 09.12.2021 13:24:41 Это знаю так как с этой базой работает другая программа и там показывает 09.12.2021 13:24:41.

Советовали Так →

Дата1С = дата(1970,1,1,1,0,0) + 637746530810000000/1000; 

= 31.12.9999 23:59:59
Тоже не то. Помогите люди добрые конвертнуть в читаемый вид.

8
Орфографическая ошибка в unixtime (найдено 2): unixtime
Орфографическая ошибка в конвертнуть: конвертнуть

Ответы

Zloyka
#1, ред. 11 декабря 2021 13:35

Откуда у вас такая цифра космическая получилась "637746530810000000"?
637746530810000000 / 86400 (количество секунд в сутках) / 365 (условно количество дней в году) = 20222809830 лет, на какой вы результат рассчитывали добавляя это число?) Чтобы получить 09.12.2021 13:24:41 из дата(1970,1,1,0,0,0) нужно добавить 1 639 056 281. Вы видимо не то значение приняли за время unixtime.


Washington
#2, ред. 11 декабря 2021 13:54

(1) Zloyka, а вот и нет, от разработчиков узнал что это число дата в unixtime. Это микроконтролер записывает данные при событии.


Zloyka
#3, ред. 11 декабря 2021 14:28

(2) Washington, unixtime это количество секунд прошедшее начиная с 01.01.1970.
https://ru.wikipedia.org/wiki/Unix-время
А вот конвертер
https://i-leon.ru/tools/time
Попробуйте конвертировать ваше число)
Ткните вашего разработчика в эту статью, в этот конвертер и в ваше число.
А вот Unix Time в прямом эфире https://www.unixtimestamp.com/index.php


bolsun
#4, ред. 11 декабря 2021 16:05

(2) Washington, timestamp может быть в секундах, милли, микро и наносекундах. Ваш похож на timestamp в наносекундах. Посмотрите документацию по контроллеру. В зависимости от этого уже делить на необходимое количество разрядов.
Как правильно посоветовали выше, есть онлайн конвертеры для проверки.
Вот еще один https://www.epochconverter.com/


Лучший ответ Aleks.spb
#5, ред. 11 декабря 2021 20:06

Насколько я понимаю, это не совсем unixtime
Дата1С = '00010101'+637746530810000000 / 10000000; //09.12.2021 13:24:41

Похоже на ToUniversalTime() в Microsoft .NET


bolsun
#6, ред. 11 декабря 2021 20:39

(5) Aleks.spb, да, действительно похоже на Ticks. Если выполнить преобразование в DateTime то получается 2021-12-09​T13:24:41
Проверить можно в онлайн конвертере https://tickstodatetime.azurewebsites.net/
Судя по всему у Вас верный ответ ))


Washington
#8, 13 декабря 2021 14:24

(5) Aleks.spb, Вот спасибо Вам огромное, всё четко работает . А разработчик так и не дал внятного ответа.


См. также

Строка в дату по форматной строке

Конвертация даты из формата ISO8601 в дату 1С с учетом миллисекунд

Функции преобразования ЗаписьJSON

Преобразование строки в число

ДополнительныеПравилаПреобразования (БСП)

ПреобразованиеЗначенийJSON (БСП)

Добавить к дате и разность дат

Прибавить к дате день

Раскрасить даты календаря

Модератору