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.