Я запускаю приложение Tomcat, и мне нужно отображать некоторые значения времени. К сожалению, наступает час. Я заглянул в него и обнаружил, что для моего по умолчанию TimeZone установлено значение:
sun.util.calendar.ZoneInfo[id="GMT-08:00",
offset=-28800000,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Вместо тихоокеанского часового пояса. Это также указывается, когда я пытаюсь напечатать отображаемое имя по умолчанию, и появляется сообщение "GMT-08: 00", что, кажется, указывают на то, что он неправильно установлен в часовом поясе в США. Я бегу на Ubuntu Hardy Heron, обновленный от Gutsy Gibbon.
Есть ли файл конфигурации, который я могу обновить, чтобы сообщить JRE использовать "Тихоокеанский регион" со всеми данными о летнем времени? Время на моей машине отображается правильно, поэтому это не похоже на неправильную конфигурацию в OS.
Хорошо, здесь обновление. Сотрудник предложил мне обновить JAVA_OPTS в моем /etc/profile, включив в него "-Duser.timezone = US/Pacific" (я также видел CATALINA_OPTS, который я также обновил). Фактически, я просто экспортировал изменение в переменные, а не использовал новый /etc/profile (перезагрузка позже подберет изменения, и я буду золотым).
Тем не менее, я все еще думаю, что есть лучшее решение... там должна быть конфигурация Java где-то, которая говорит, какой временной зоной она пользуется, или как она захватывает часовой пояс. Если кто-то знает такую настройку, это будет потрясающе, но на данный момент это достойное решение.
Я использую 1.5, и это определенно проблема DST. Как вы можете видеть, в часовом поясе установлен не использовать летнее время. Я убежден, что он в целом установлен на -8 смещение, а не на конкретный часовой пояс в Тихоокеанском регионе. Поскольку общий сбой -8 не имеет информации о дневном свете, он, конечно, не использует его, но вопрос в том, где я могу сказать, что Java использует часовую зону Тихого океана при ее запуске? Я НЕ ищу программное решение, оно должно быть конфигурационным решением.