He intentado esto utilizando JodaTime DateTime
,DateTime está dando resultado inesperado
DateTime dateTime = DateTime
.parse("1-JAN-1900", DateTimeFormat.forPattern("dd-MMM-yyyy"))
.plusSeconds(2075866000);
String dateTimeStr = DateTimeFormat.forPattern(
"yyyy/MM/dd HH:mm:ss").print(dateTime);
System.out.println(dateTimeStr);
También he intentado usar JodaTime MutableDateTime
MutableDateTime dateTime = MutableDateTime
.parse("1-JAN-1900", DateTimeFormat.forPattern("dd-MMM-yyyy"));
dateTime.add(DurationFieldType.seconds(), 2075866000);
String dateTimeStr = DateTimeFormat.forPattern(
"yyyy/MM/dd HH:mm:ss").print(dateTime.toDateTime());
System.out.println(dateTimeStr);
Ambos me están dando el mismo resultado, 1965/10/13 06:09:54
.
Espero, 1965/10/13 05:26:40
, en su lugar. Me estoy poniendo esto utilizando Oracle consulta dada a continuación,
select to_date('1900-JAN-1') + 2075866000/86400 from dual
Y en contradicción entre Joda y Oracle, he intentado Wolframalpha, que también se produce el mismo resultado que Oracle.
¿Alguien por favor explique por qué es esa diferencia?
'2075866000/86400', ¿para qué se utiliza el' 86400'? –
¿Cuál es tu zona horaria predeterminada? Si está en India, hay algunos ajustes extraños en la década de 1930 que afectarían el resultado. –
Noté que se encuentra en Malasia, como dijo Jim Garrison, los ajustes a esa zona horaria en el siglo pasado pueden explicar la discrepancia. Vea esta página: http://en.wikipedia.org/wiki/Time_in_Malaysia –