Вы должны быть осторожны при интерпретации объектов даты с экрана, который вы получаете в консоли, потому что они отформатированы с использованием TimeZone по умолчанию для виртуальной машины, на которой выполняется эта программа (которая по умолчанию наследует ее от часового пояса ОС). Конечно, вы можете поставить свой собственный TimeZone, как объяснено в ответе Йеспера. Но при этом я бы сильно рекомендую использовать идентификаторы часовых поясов IANA, такие как America/New_York вместо EST. Тем более что аббревиатуры, имеющие «стандарт», не учитывают дневную экономию.
Так что, если вы просто напечатаете объект даты на консоли, и вы не получите ожидаемого результата, вероятность того, что ваш часовой пояс сервера установлен на неправильное значение, или ваша ОС установлена в неправильный часовой пояс.
Для изменения часового пояса JVM, вы можете использовать этот параметр при запуске
-Duser.timezone="America/New_York"
см http://stackoverflow.com/questions/3010035/converting-a-utc-time-to-a-local-time -zone-в-Java? RQ = 1 – Justin