Calendar calendar = new GregorianCalendar(sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]);
calendar.setTime(d);
Хорошо, у вас есть календарь с часовым поясом UTC и временем
Wed Apr 06 00:00:00 BST 2011
.
Внутренне это отображается на
2011-04-05 23:00:00 UTC
(дата и время приняты, часовой пояс сохраняется).
Установка часов, минут, секунд иПоля в миллисекундах календаря, равные 0, изменят его на
2011-04-05 00:00:00 UTC
.
Если вы теперь конвертируете календарь в объект java.util.Date
и печатаете его, учитывая местный часовой пояс (BST)), результат будет:
2011-04-05 01:00:00 BST
.