Вы уверены, что значения не на самом деле
DE A4 4F 4F 00 00 00 00
... например, из-за неправильного подсчета позиции в файле?
Чтобудет иметь больше смысла, и будет представлять 64-разрядное целое число с прямым порядком байтов, которое вы конвертируете следующим образом:
static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
...
long seconds = BitConverter.ToInt64(data, index);
DateTime date = Epoch + TimeSpan.FromSeconds(seconds);
(Обратите внимание, насколько проще этот код преобразования, кстати - без вознис LINQ и без умножения значения на TicksPerSecond
.)
РЕДАКТИРОВАТЬ: Если это действительно два 32-разрядных целых числа с прямым порядком байтов, расположенных в порядке с прямым порядком байтов для создания 64-битное целое число, тогда вы можете использовать:
ulong x = BitConverter.ToUInt32(data, index);
ulong y = BitConverter.ToUInt32(data, index + 4);
ulong combined = (x << 32) | y;
long seconds = unchecked ((long) combined);