Google app engine - локальный часовой пояс сервера разработки

99
10

Я понял из документации GAE, что часовой пояс производственного сервера всегда UTC. При локальном развитии серверный часовой пояс устанавливается в CET. Есть ли способ заставить локальный сервер разработки также работать в UTC?


Сервер разработки работает в Mac OS.


Спасибо,


Гюг

спросил(а) 2021-01-25T22:31:32+03:00 4 месяца, 3 недели назад
1
Решение
99

нашел ответ. Чтобы установить часовой пояс сервера, просто зайдите в Eclipse, "Запустите конфигурацию", затем "Аргументы VM" и добавьте следующий "-Duser.timezone = UTC".


В этом случае будет установлен часовой пояс сервера на нужное вам значение (UTC). Это очень удобно, так как в Google App Engine всегда будет работать UTC, тогда как сервер разработки (по крайней мере, в моем случае) работает с локальным часовым поясом. Чистым эффектом было то, что у меня было другое поведение между dev и prod.

Гюг

ответил(а) 2021-01-25T22:31:32+03:00 4 месяца, 3 недели назад
77

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

    DateFormat utcFormat = new SimpleDateFormat(patternString);
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
DateFormat indianFormat = new SimpleDateFormat(patternString);
utcFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
Date timestamp = utcFormat.parse(inputString);
String output = indianFormat.format(timestamp);

ответил(а) 2021-01-25T22:31:32+03:00 4 месяца, 3 недели назад
63

GAE devServer по умолчанию использует локальный часовой пояс.


Я использую этот код для принуждения его к UTC:


boolean isDevEnvironment = SystemProperty.environment.value() == SystemProperty.Environment.Value.Development;

if (isDevEnvironment) {
TimeZone.setDefault(DateTimeZone.UTC.toTimeZone());
DateTimeZone.setDefault(DateTimeZone.UTC);
}


Вам нужно запустить его один раз, во время запуска и инициализации сервера.

ответил(а) 2021-01-25T22:31:32+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема