TimestampTicks
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
TimestampTicks
Добрый день
в JSON структуре есть поля Временная метка.
Пример: LastEventTimestampTicks":637726563560042551
Вот описание
"
Структура представляет некоторый момент времени, не привязанный к часовому поясу. Его можно воспринимать как UTC-время.
Ticks - целое число тиков (100-наносекундных интервалов), прошедших с момента времени 00:00:00 01.01.0001.
Пример использования (C#)
Преобразование в DateTime:
var dt = new DateTime(timestamp.Ticks, DateTimeKind.Utc);
"
Вопрос: как это поле перевести в Clarion время?
Может, кто сталкивался...
			
			
									
						в JSON структуре есть поля Временная метка.
Пример: LastEventTimestampTicks":637726563560042551
Вот описание
"
Структура представляет некоторый момент времени, не привязанный к часовому поясу. Его можно воспринимать как UTC-время.
Ticks - целое число тиков (100-наносекундных интервалов), прошедших с момента времени 00:00:00 01.01.0001.
Пример использования (C#)
Преобразование в DateTime:
var dt = new DateTime(timestamp.Ticks, DateTimeKind.Utc);
"
Вопрос: как это поле перевести в Clarion время?
Может, кто сталкивался...
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
TimestampTicks
Там, что-то вроде:
А вообще, в классе LibCurl есть метод curl::UnixTime() который конвертит ClaDate + ClaTime в UnixDateTime.
На его основе можно сделать и обратную конвертацию, в т.ч. и с ClaTime. Если надо.
			
			
									
						Код: Выделить всё
   ClaDate = Date(01,01,1970) + (UnixDateTime / (1000 * 86400))
На его основе можно сделать и обратную конвертацию, в т.ч. и с ClaTime. Если надо.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
TimestampTicks
В задаче не unixTimeА вообще, в классе LibCurl есть метод curl::UnixTime() который конвертит ClaDate + ClaTime в UnixDateTime.
- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
TimestampTicks
637726563560042551 тик это 6377265635600 мс или (6377265635600/8640000)=738 109,4485648148 дней
8640000 * 0,4485648148 = 3 875 600, прибавляем 1 и переводим в кларионовское время, будет 10:45:56
Из 738109 вычитаем 657436 получаем 80673 и переводим в кларионовскую дату это 12.11.2021
Теперь осталось проверить, так как вам известно, что вы задали, а мне нет
Ну и если все верно, то обернуть в формулу
			
			
									
						8640000 * 0,4485648148 = 3 875 600, прибавляем 1 и переводим в кларионовское время, будет 10:45:56
Из 738109 вычитаем 657436 получаем 80673 и переводим в кларионовскую дату это 12.11.2021
Теперь осталось проверить, так как вам известно, что вы задали, а мне нет
Ну и если все верно, то обернуть в формулу
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
TimestampTicks
Как-то оно всё там непросто: https://habr.com/ru/post/123461/
			
			
									
						Когда измеряете время, измеряйте Unix-время. Это UTC.
Его просто получить (системными функциями). Оно не имеет часовых поясов или летнего времени (и високосных секунд).
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
TimestampTicks
Второй вариант (637726563560042551/100000)-(657436*8640000)=697018595600.42551
697018595600.42551/8640000 = 80673.4485648641 далее см выше
Или даже проще (637726563560042551/864000000000)-657436
			
			
									
						697018595600.42551/8640000 = 80673.4485648641 далее см выше
Или даже проще (637726563560042551/864000000000)-657436
TimestampTicks
Спасибо, с годом похоже все верно
в ЭДО в браузере эти Tick не показываются (не нашел) , только по API приходят
Но на вид - дата самого документа равна или больше CreationTimeTicks
			
			
									
						в ЭДО в браузере эти Tick не показываются (не нашел) , только по API приходят
Но на вид - дата самого документа равна или больше CreationTimeTicks
