DateTime дает неожиданный результат

Я пробовал это, используя Jodatime DateTime,

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

Я также пытался использовать 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);

Оба дают мне тот же результат, 1965/ 13.10 06:09:54.

Думаю, 1965/10/13 05:26:40, вместо этого. Я получаю это, используя запрос Oracle, приведенный ниже:

select to_date('1900-JAN-1') + 2075866000/86400 from dual

И, столкнувшись с противоречием между Joda и Oracle, я попробовал Wolframalpha, который также дает мне тот же результат, что и Oracle.

Кто-нибудь, объясните, почему такая разница?

6
задан Adeel Ansari 28 May 2012 в 04:25
поделиться