Мне нужно чтобы пользователь мог ввести в систему дату и время другого (любого) часового пояса. Как её хранить, в строке или в объекте Date? И как её переводить из UTC и обратно, на сервере или на клиенте?
После ввода конвертировать в UTC и хранить в UTC. Переводить только перед отображением, на сервере или на клиенте - как вам удобнее. Если юзеры из разных часовых поясов, то удобнее на клиенте, обычно.