Объекты типа java.util.Date
- это абсолютное количество времени с начала эпохи. Когда вы создаете объект Date из календаря, он теряет любую временную зону, которую мог использовать календарь, и просто дает вам необработанное количество времени. EST на самом деле не «связан» с вашей датой, просто метод toString в Date использует часовой пояс JVM по умолчанию для создания удобочитаемого представления.
Важно понимать, что использование Calendar в приведенных выше примерах кода не делает абсолютно ничего . Изменение только такого часового пояса изменяет только удобочитаемое представление этого Календаря. Необработанное число миллисекунд с начала эпохи до и после вызова setTime
и getTime
.
.
(Все методы в java.util.Date, связанные с читаемыми представлениями, устарели и не работают должным образом, лучше всего просто притвориться, что они не существуют.)