Вы используете 1 для номера месяца, что означает февраль.
Вы имеете в виду
gc.set(1900, 0, 1);
С документы :
month - значение, используемое для установки поля календаря MONTH.Значение месяца основано на 0.например, 0 для января.
Да, API даты / времени Java не работает.Если вы выполняете какой-либо значительный объем работы по датам / временам, я бы посоветовал вам использовать Joda Time .
long left = new DateTime(1900, 1, 1, 0, 0, DateTimeZone.UTC).getMillis();