|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.08.2009, 11:51 | #1 | |
Регистрация: 23.05.2009
Сообщений: 4
|
Delphi. Int64. Непонятный формат времени.
Здрасте. Имеется 8 байтовая последовательность символов, после ее перевода в hex получается число с обратным порядком байт (little-endian): 40E3861462833945, далее перевожу это в Int64: 4675728260250941765
Следующий код переводит это число в дату: Цитата:
Вопрос: что это за формат времени такой 40E3861462833945 и как еще из него можно получить дату 20.06.2009 15:17:19 без использования директивы absolute (для повторения этого на других языках) ?? |
|
27.08.2009, 13:08 | #2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
А если грузить его сразу в double, не используя промежуточный int64? Это ведь из файла откуда то берется?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
27.08.2009, 13:13 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.08.2009, 13:29 | #4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Теоретически 8 байт могут быть чем угодно, в том числе и значением времени, но только грузить его (если это время) надо не в int64, а в double или в TDateTime, что одно и то же.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
27.08.2009, 13:31 | #5 |
Регистрация: 23.05.2009
Сообщений: 4
|
Ну возможно не формат, а способ хранения) Как, например, FILETIME или SYSTEMTIME в бинарном виде, но тут слишком большое число для этих структур. В общем, так кодируется одна дата, используемая в одном из пакетов ICQ протокола, возможно и где-то еще, вот я и подумал может это что-то стандартное и где-то еще используемое?
Дело в том, что это нужно будет все повторить на другом языке, а именно PHP, а там вообще с типами проблема=) . Так что хотелось бы выяснить пошаговое преобразование такого большого числа в простую дату (в кол-во секунд) |
27.08.2009, 13:50 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.08.2009, 14:02 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
В Delphi формат TDateTime не целочисленный, это 8 байтное число с плавающей точкой, до точки - дата, после точки - время (кол-во секунд, к-рое ты упоминал).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
27.08.2009, 14:32 | #8 |
Регистрация: 23.05.2009
Сообщений: 4
|
Воо) Значит формат определили, спасибо. Тогда вернемся к вашему совету считать число сразу в Double или как можно перевести в него считанный Int64 без использование директивы absolute? и по возможности отделить целую часть от дробной)
|
27.08.2009, 15:57 | #9 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Вот так например в Дельфи работает, здесь идет прямой доступ к памяти, что на PHP я так думаю будет недоступно.
Код:
p.s. То же самое в Дельфи можно сделать с помощью потока TMemoryStream, закинуть в него целочисленную переменную как буфер, а прочесть в вещественную, по сути это тот же механизм, только другая его реализация.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 27.08.2009 в 16:00. |
27.08.2009, 17:10 | #10 |
Регистрация: 23.05.2009
Сообщений: 4
|
mutabor, спасибо за помощь, на пхп тоже нашел функцию нужную)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Непонятный глюк Delphi 2009 | aesoem | Общие вопросы Delphi | 3 | 15.08.2009 12:30 |
формат упакованного времени в DELPHI | dimonbest | Общие вопросы Delphi | 32 | 23.09.2008 02:15 |
Как изменить в программе формат отображения даты и времени | Alex_C | Общие вопросы Delphi | 2 | 13.09.2008 23:39 |
Delphi и int64 | Onix84 | Общие вопросы Delphi | 1 | 18.11.2007 23:28 |