Все значения даты и времени по умолчанию отображаются в соответствии с часовым поясом сервера. Часовой пояс
сервера возвращается методом TimeZone.getDefault()
блока приложения.
По умолчанию, платформа получает часовой пояс из операционной системы, однако его можно явно задать системным
свойством Java user.timezone
. Например, чтобы задать часовой пояс по Гринвичу для веб-клиента и Middleware, работающих
на сервере Tomcat под Unix, нужно добавить в файл tomcat/bin/setenv.sh
следующее
свойство:
CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=GMT"
Пользователь может просматривать и редактировать значения типа timestamp в часовых поясах, отличных от часового пояса сервера. Существует два способа управления часовыми поясами пользователя:
-
Администратор может задать часовой пояс в экране редактирования пользователя.
-
Пользователь может задать свой часовой пояс в окне
.
В обоих случаях, часовой пояс настраивается при помощи двух полей:
-
Выпадающий список с названиями часовых поясов позволяет явно выбрать часовой пояс.
-
Флажок Auto указывает, что часовой пояс будет получен из текущего окружения (для веб-клиента - из веб-браузера, для для десктоп-клиента - из операционной системы).
Если оба поля пусты, часовые пояса для пользователя не конвертируются. В противном случае, платформа
сохраняет часовой пояс в объекте UserSession при логине и использует
его для ввода и отображения значений типа timestamp. Значение, возвращаемое методом UserSession.getTimeZone()
может также использоваться и в прикладном коде.
Если часовой пояс используется для текущей сессии, его краткое имя и отклонение от времени по Гринвичу отображаются в главном окне приложения рядом с именем текущего пользователя.
Преобразование часовых поясов выполняется только для атрибутов типа DateTimeDatatype,
то есть, содержащих timestamp. Атрибуты, хранящие только дату (DateDatatype
) или время
(TimeDatatype
) по отдельности, не конвертируются. Вы можете запретить преобразование отдельных timestamp-атрибутов,
установив для них аннотацию @IgnoreUserTimeZone.