РЕДАКТИРОВАТЬ: Alnitak правильно, что это двоичное представление даты с фиксированной точкой. Однако принципы могут быть аналогичны тем, что описаны ниже; вместо десятичного разряда формат фиксируется, и младшие 15 бит, скорее всего, являются временем. Если у вас есть примеры, опубликуйте их, и мы постараемся помочь.
ORIGINAL: Скорее всего, это формат даты Windows OLE / COM, который использует Double для представления даты и времени. Целая часть числа - для даты, а дробь - для времени. Он может представлять даты между 1 января 100 года и 31 декабря 9999 года. Дополнительную информацию можно найти по адресу MSDN или в Google для OLE date COM double.
РЕДАКТИРОВАТЬ: Вот один C # пример с использованием DateTime.FromOADate. Вот немного больше информации из MSDN VariantTimeToSystemTime .
Вариант времени хранится в виде 8-байтового действительного значения (double), представляющего дату между 1 января 1753 года и 31 декабря 2078 года включительно.
Значение 2,0 представляет 1 января 1900 года; 3.0 соответствует 2 января 1900 года и т. Д.
Добавление 1 к значению увеличивает дату на день. Дробная часть значения представляет время суток. Таким образом, 2,5 представляет полдень на 1 января 1900 года; 3,25 представляет 6:00 утра 2 января 1900 года и т. д.
Отрицательные числа представляют даты до 30 декабря 1899 г.
Это немного противоречиво, поскольку в документации COleDateTime говорится, что она поддерживает 1, 100 января, тогда как в этой документации говорится, что она поддерживает 1 января 1753 года.
Есть интерфейсы для VB (используйте CDbl () и CDate ()), C # (DateTime.FromOADate / ToOADate), Java ( OLEDate - выглядит устаревшим), Delphi Python и т. Д.