Примерно до 1968 года существовали всевозможные странные отклонения, особенно в менее развитых частях мира.Вы не говорите, какую локаль вы используете, но если это в Индии, когда-то было что-то под названием Howra Mean Time, которое имело это смещение.Однако я не знаю, действовал ли он в 1933 году.Скорее всего, вам придется загрузить базу данных tz для вашей локали и проверить конфигурацию на эту дату.
РЕДАКТИРОВАТЬ: Чтобы точно проверить, что происходит, попробуйте:
GregorianCalendar c = new GregorianCalendar();
TimeZone tz = c.getTimeZone();
System.out.println(tz);
int tzo = tz.getOffset(date.getTime());
System.out.println(
tzo/3600000 + ":" +
(tzo/60000)%60 + ":" +
(tzo/1000)%60 + "." +
tzo%1000);
Это скажет вам, что система считает текущим часовым поясом, и смещение часового пояса, действующее на проблемную дату в 1933 году. Когда я запускаю это в своей системе, я получаю:
sun.util.calendar.ZoneInfo[id="America/Chicago",offset=-21600000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/Chicago,offset=-21600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]
-6:0:0.0
ОДНАКО, еслиЯ меняю одну строку:
GregorianCalendar c = new GregorianCalendar(TimeZone.getTimeZone("IST"));
Затем получаю:
sun.util.calendar.ZoneInfo[id="IST",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]
5:53:20.0