Давайте на минуточку вспомним то, что все и так знают. Дата в UTC — это дата по Гринвичу, то есть GMT±0:00.

Соответственно, если мы получаем с сервера дату/время в UTC, мы должны конвертировать ее с учетом нашего локального часового пояса.
Для этого в яваскрипте есть разные способы.

Самый простой, это создать объект даты из полученной строки, а затем вызвать метод toString()

Или можно вот так, например, получив разницу во времени:

 

Но прежде, чем начинать что-то куда-то конвертировать, присмотритесь внимательно к дате, которая пришла с сервера. Вполне может оказаться, что дата возвращается в формате ISO 8601 — что есть международный формат форматирования даты и времени. Он, в том числе, указывает часовой сдвиг либо говорит нам о том, что дата в UTC.

Как это выглядит?

И вот если в вашей дате, пришедшей с сервера, обнаруживается буква Z на конце или часовой сдвиг, как в примере выше, никакая конвертация даты на клиенте не нужна!

Достаточно создать объект даты из полученной строки:

localDate уже и будет содержать верную дату, с учетом вашего часового пояса. Создание new Date() из строки формата ISO 8601 все сделает за вас.

Возможно это сэкономит вам немного времени.