Como converter o carimbo de data e hora decimal para data em Java com decimais à direita

Estive tentando descobrir como converter um carimbo de data / hora em uma data, mas com os decimais à direita no final, por exemplo: carimbo de data / hora - C50204EC EC42EE92 é equivalente a 27 de setembro de 2004 03: 18: 04.922896299 UTC.

O formato do registro de data e hora inclui os primeiros segundos não assinados de 32 bits como um campo de 136 anos e o campo de fração de 32 bits resolvendo 232 picossegundos. Nos formatos de registro de data e hora, a época principal ou a data base da era 0 é 0 h 1 de janeiro de 1900 UTC, quando todos os bits são zer

Este é o que escrevi para o meu código até agora:

    BigDecimal bi = new BigDecimal("1096255084000");
    double decimal_timestamp = bi.doubleValue();

    DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
    formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(decimal_timestamp);
    String date = formatter.format(calendar.getTime());

    System.out.println(decimal_timestamp + " = " + date); 

Meu pensamento é que provavelmente não é possível com o calendário, então terei que fazê-lo do zero, mas não tenho idéia de como fazer iss

questionAnswers(1)

yourAnswerToTheQuestion