Подтвердить что ты не робот

Как установить календарь с временем UTC?

Плакаты здесь говорят, что дата всегда находится в 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);
    }
4b9b3361

Ответ 1

java.util.Calendar имеет статический метод factory, который занимает часовой пояс.

Calendar.getInstance(java.util.TimeZone)

Итак, вы можете сказать:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));