У меня похожая, но немного другая проблема, я думаю.
Мне действительно нужно хранить часовой пояс клиентов на сервере, чтобы я мог отправлять сообщения о датах, хранящихся в их календаре.
Даты хранятся в UTC по времени в Google App Engine, и, конечно, я могу сохранить текущее смещение часового пояса при создании встречи. Проблема возникает, когда, например, я хочу отправить сводное электронное письмо со списком предстоящих встреч. Эти встречи должны быть компенсированы правильными настройками часового пояса для клиента (я рад предположить, что они все еще находятся в том же часовом поясе, что и при создании встречи).
Настоящая проблема связана с корректировкой перехода на летнее время, поэтому, например, у меня могут быть встречи, записанные на субботу 30 октября 2010 года в 13:00 (BST [GMT + 60]) и понедельник 1 ноября 2010 года в 13:00 (GMT).
Итак, как вы можете себе представить, я не могу просто использовать текущее смещение часового пояса (BST), так как это будет означать, что встреча в понедельник 1 ноября будет указана как 14:00, а не 13:00 (GMT + 60)
Мне приходит в голову, что лучший способ справиться с этим - просто сохранить смещение часового пояса для каждой встречи индивидуально, но я чувствую, что было бы гораздо лучше сначала правильно определить исходный часовой пояс, а затем просто дайте Java сделать правильные настройки.