Предполагая, что ваши входные данные точно такие, как указано:
var localDate = "2020-10-13";
var localTime = "20:00:00";
var dateTime = "2020-10-14T01:00:00Z";
var offsetMillis = new Date(localDate + 'T' + localTime + 'Z') - new Date(dateTime);
var offsetHours = offsetMillis / 36e5;
console.log(offsetHours); // -5
Результат - -5
, что на 5 часов меньше UT C. Это работает путем создания двух объектов даты, один из которых основан на UT C, а другой претендует на как UT C, но фактически использует локальные значения. Вычитание этих двух значений дает смещение.
Имейте в виду - это смещение от UT C, а не часовой пояс. Нельзя определить часовой пояс только по смещению. См. «Часовой пояс! = Смещение» в тэге часового пояса вики для получения более подробной информации.
Также имейте в виду, что не все смещения часового пояса будут в целых часах. Например, Индия использует UT C -5: 30, поэтому в этом случае ожидайте -5.5
от этого кода. (Существуют также часовые пояса со смещением в 45 минут.)