Здравствуйте!
Я пытаюсь реализовать функцию форматирования времени в JavaScript без использования сторонних библиотек. Моей задачей является преобразование входного времени в формате UTC (например, "2024-12-24T14:00:00Z") в локальное время для часового пояса GMT+2.
Вот код функции, которую я использую:
function formatTime(dateString) {
const date = new Date(dateString);
const timezoneOffsetHours = 2; // GMT+2
const hours = (date.getUTCHours() + timezoneOffsetHours) % 24;
const minutes = date.getUTCMinutes();
const formattedHours = String(hours).padStart(2, '0');
const formattedMinutes = String(minutes).padStart(2, '0');
return `${formattedHours}:${formattedMinutes}`;
}
При передаче строки "2024-12-24T14:00:00Z" я ожидаю получить результат "16:00", но вместо этого функция выдаёт неправильное значение — время отстаёт примерно на 10 часов.
Я убедился, что входная строка имеет формат UTC (с суффиксом Z).
Я проверил системный часовой пояс (локальное время настроено правильно).
Не могу понять, почему время рассчитывается некорректно. Возможно, я неверно работаю с UTC или смещением.
Буду рад любым подсказкам или примерам исправления.
Спасибо!