Delphi TDateTime
эпоха 30 декабря 1899 г. , Java Calendar
использует эпоху Unix, 1 января 1970 г. .Следующий код:
Calendar epoch = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
epoch.set(1899, 12, 30, 0, 0, 0);
epoch.getTimeInMillis();
дает -2206483199054 , но согласно ручным расчетам это должно быть -2209161600000 .Откуда берется дельта 2678400946 (31 день)?Что мне не хватает?
Да, теперь я могу работать с миллисекундами в качестве обходного пути, но я хочу знать, откуда возникает ошибка.
PS epoch
- это экземпляр java.util.GregorianCalendar
.