Cómo convertir la marca de tiempo decimal a la fecha en Java con decimales finales

He estado tratando de descubrir cómo convertir una marca de tiempo a una fecha, pero con los decimales finales al final, por ejemplo: Marca de tiempo - C50204EC EC42EE92 es equivalente al 27 de septiembre de 2004 03: 18: 04.922896299 UTC.

l formato de marca de tiempo incluye los primeros segundos sin signo de 32 bits como un campo que abarca 136 años y el campo de fracción de 32 bits que resuelve 232 picoseconds. En los formatos de marca de tiempo, la época principal, o fecha base de la era 0, es 0 h 1 de enero de 1900 UTC, cuando todos los bits son cero.

Esto es lo que he escrito para mi código hasta ahora:

    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); 

Mi pensamiento es que probablemente no sea posible con el calendario, así que tendré que hacerlo desde cero, pero no tengo idea de cómo hacerlo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta