Próbowałem to przy użyciu Jodatime DateTime
,DateTime daje nieoczekiwany rezultat
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);
Próbowałem również używając 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);
Oba dają mi taki sam wynik, 1965/10/13 06:09:54
.
Oczekuję, 1965/10/13 05:26:40
zamiast. Dostaję to przy użyciu Oracle zapytanie poniżej,
select to_date('1900-JAN-1') + 2075866000/86400 from dual
A na sprzeczności między Joda i Oracle, próbowałem Wolframalpha, które również daje mi ten sam wynik jak Oracle.
ktoś proszę wyjaśnić, dlaczego jest taka różnica?
'2075866000/86400', do czego służy" 86400 "? –
Jaka jest domyślna strefa czasowa? Jeśli jest w Indiach, w latach trzydziestych pojawiają się dziwne korekty, które wpłynęłyby na wynik. –
Zauważyłem, że znajdujesz się w Malezji - jak powiedział Jim Garrison, korekty w tej strefie czasowej w ubiegłym stuleciu mogą wyjaśnić rozbieżności. Zobacz tę stronę: http://en.wikipedia.org/wiki/Time_in_Malaysia –