Только клиент знает, какая у него на самом деле зона и текущее смещениеа если ему задать эту зону, например взять его смещение получить utc и задать своё смещение, получается он будет работать под смещение которое задал ты, а не которое у него есть, к примеру что такое московское время в любом часовом поясе ? это время юзера локальное с его смещением из которое получаем utc и добавляем 3 часа, так как между utc и москвой 3 часа разница