Mysql и конвертация времени

Что если необходимо хранить время в базе данных в GMT, а клиенту отдавать в GMT+1. Как обеспечить корректную конвертацию времени и оставить код прозрачным? Этот вариант решения заключаться в том, чтобы правильно настроить java mysql connector для конвертации времени.

Что необходимо добиться:
  1. В базе время хранится в GMT; 
  2. При запросах время получаем в GMT+1 (+01:00); 
  3. При сохранении время из GMT+1 конвертируется в GMT.

Что для этого необходимо настроить:
  1. Часовой пояс GMT для mysql сервера:
    mysql> set global time_zone = '+00:00';
    mysql> set time_zone = '+00:00';
    
    Проверить настройки можно так:
    mysql> select now();
    mysql> select @@global.time_zone, @@session.time_zone, @@system_time_zone;
    
  2. Задать параметр -Duser.timezone=GMT+1 в файле setenv.sh и setenv.bat. Например:
    # file setenv.sh
    JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT ..."
    
    Это надо сделать только если необходимо вручную задать часовой пояс в котором работает приложение, иначе пропустить этот шаг;
  3. Перейти к строке с настройкой jdbc.default.url и добавить параметр useTimezone=true. Например:
    jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false&useTimezone=true
    
  4. Готово, запускаем и проверяем.
Эти настройки mysql базы будут работать до ее перезапуска. После перезапуска время снова будет системным. Этого можно избежать вручную указав параметр --default-time-zone='+00:00' при запуске mysql сервера. Либо снова выполнить шаг 1 и 2.

Официальная документация:
http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html