Запуск Webapp на Mac в UTC (изменение часового пояса MacBook или tomcat timezone)

Чтобы запустить мое веб-приложение, мне нужно установить часовой пояс UTC на моем MacBook. Я могу сделать это временно, открыв Konsole и введя

sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime

Тем не менее, мой часовой пояс возвращается к нормальному, когда я перезагружаю машину!

Любой совет?

Изменить: Ответ на этот вопрос "Celada" подразумевает, что я могу просто сделать мой сервер UTC. Я использую Apache Tomcat 7. В дополнение к ответу Celada, как я могу сделать это UTC?

Обновление - 3 апреля: после ответа Селады я попытался добавить SetEnv TZ UTC в верхней части файла startup.sh. Это, казалось, не имело значения. После некоторых исследований я попытался добавить export JAVA_OPTS="-Duser.timezone=UTC" на startup.sh, но это тоже не имело никакого эффекта. Я добавляю правильную команду в правильный файл?

3 ответа

Решение

Бинго. Мне удалось установить часовой пояс для кота в UTC. В bin/catalina.sh я добавил CATALINA_OPTS=-Duser.timezone=UTC

Я предполагаю, что если вы используете панель управления для изменения часового пояса, ваши изменения не будут подавлены при каждой перезагрузке.

Если вы обеспокоены тем, что часовой пояс восстанавливается при каждом перезапуске, то это звучит так, как будто вы хотите сделать изменение постоянным, а не временным, поэтому в таком случае почему бы вам просто не использовать панель управления?

Если это изменение касается только вашего веб-приложения, то почему бы вам не изменить часовой пояс только для веб-сервера, а не глобально на компьютере? Это должно быть так просто, как добавление

SetEnv TZ UTC

до конца /etc/apache2/httpd.conf,

Если это не сработает, это может быть потому, что TZ переменная должна быть установлена перед запуском Apache, а не Apache. В этом случае следующее сложнее, но обязательно сработает:

  1. редактировать /System/Library/LaunchDaemons/org.apache.httpd.plist

    Добавьте строки

    <key>EnvironmentVariables</key>
    <dict>
            <key>TZ</key>
            <string>UTC</string>
    </dict>
    

    как раз перед строкой, которая читает </dict> около дна

  2. Перезагрузите этот конфиг

    launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
    launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist
    

Все это нужно сделать как root.

Если символическая ссылка работает, вы можете воссоздать эту символическую ссылку при запуске. См. Создание запущенных заданий

Другие вопросы по тегам