Плакаты здесь говорят, что дата всегда находится в UTC. Однако, если я создаю Date(), создаю календарь и задаю время календаря с датой, время остается моим местным временем (и я не в UTC. Я проверил это, распечатав календарную дату в цикле, вычитая час за цикл. Это 11 вечера 19 мая здесь, и он принимает 24 петли до даты изменения до 18 мая. В настоящее время он составляет 1pm UTC, поэтому, если календарь был установлен правильно, он будет принимать только 14 циклов.
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
int index = 0;
for(; index > -30; index--)
{
System.out.println(index);
System.out.println(dateFormatter.format(calendar.getTime()));
System.out.println();
calendar.add(Calendar.HOUR, -1);
}