java.util.Date
не поддерживает часовые пояса. Вместо этого вы должны передать TimeZone
в средство форматирования, вызвав formatter.setTimeZone(tz)
.
joda-time считается лучшим выбором при работе с датами. Обратите внимание, что для форматирования хорошо использовать Date
, но это общий совет не полагаться на него, когда дело доходит до i18n. (Обратите внимание на многие устаревшие методы там)
Затем заставьте каждого пользователя установить свой часовой пояс. Идеально предложить / предположить часовой пояс, основанный на его локали браузера. Смотрите здесь
И всегда храните даты в фиксированном часовом поясе - предпочтительно по Гринвичу / UTC.