Байты в файле: AA37 D608 DFBF CB01.
В левом столбце видно, что это интерпретируется как 64-разрядное целое число 129407978957060010. Если вы преобразуете это обратно в шестнадцатеричное, вы будетеубедитесь, что число хранится в формате «little-endian»: 01CB BFDF 08D6 37AA.
Итак, что вам нужно сделать:
byte[] data = new byte[] { (byte) 0xAA, (byte) 0x37, (byte) 0xD6,
(byte) 0x08, (byte) 0xDF, (byte) 0xBF, (byte) 0xCB, (byte) 0x01 };
// convert bytes to long time
long val = 0;
for(int i=7;i>=0;i--) {
val <<= 8;
val += 0xff & data[i];
}
// convert 100 nanos to milliseconds
val /= 10000;
// convert to time offset from 1st Jan 1601 AD
Calendar calend = Calendar.getInstance();
calend.set(1601,0,01,00,00,00);
calend.set(Calendar.MILLISECOND, 0);
val += calend.getTimeInMillis();
calend.setTimeInMillis(val);
// display result
DateFormat df = DateFormat.getDateTimeInstance();
System.out.println(df.format(calend.getTime()));