Объекты Calendar и Date хранят информацию о дате в миллисекундах по отношению к UTC.
(разница, измеренная в миллисекундах, между текущим временем и полночью, 1 января 1970 года по UTC)
Это означает, что объекты Календарь / Дата не хранят разные значения для разных часовых поясов.Они всегда используют одно и то же значение внутри ... формат - это то, что обычно изменяется.
Может быть, вы можете использовать SimpleDateFormat в вашем местном / часовом поясе по умолчанию:
SimpleDateFormat sdf = new SimpleDateFormat("S")
Date d = sdf.parse(milliseconds);
Вы также можете попробовать изменить часовой пояс DateFormat, пока он не будет соответствовать ожидаемому результату.
sdf.setTimeZone(TimeZone.getTimeZone("GMT-8"));
System.out.println(sdf.toString());
sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
System.out.println(sdf.toString());