toTimeString() возвращает строку только со временем и часовым поясом. Метод не меняет объект Date и формирует результат по локальному времени пользователя.
Синтаксис
Базовая запись выглядит так:
date.toTimeString()
Где:
date- это объектDate
У метода нет аргументов.
Что возвращает toTimeString()
Метод возвращает строку.
Обычно она выглядит примерно так:
14:30:45 GMT+0300 (Moscow Standard Time)
Пример:
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(typeof date.toTimeString()); // "string"
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
Здесь в строке есть:
- часы, минуты и секунды
- смещение часового пояса
- название часового пояса
Важно: точный текст в скобках может немного отличаться в зависимости от браузера, операционной системы и среды выполнения.
Простой пример
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
У объекта есть и дата, и время, но toTimeString() возвращает только временную часть строки.
toTimeString() работает по локальному времени
Это главный момент метода.
toTimeString() не использует UTC. Он показывает время с точки зрения локального часового пояса пользователя.
const date = new Date("2025-01-15T23:30:00.000Z");
console.log(date.toISOString()); // "2025-01-15T23:30:00.000Z"
console.log(date.toTimeString()); // "02:30:00 GMT+0300 (Moscow Standard Time)"
По UTC здесь ещё 23:30, но в часовом поясе +03:00 уже 02:30 следующего дня. toTimeString() показывает именно локальное время.
Именно из-за этого метод не подходит для задач, где важны часы и минуты именно по UTC.
В результате нет даты
Это полезно помнить.
Метод не удаляет дату из самого объекта Date, а просто не показывает её в строке.
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
console.log(date.getFullYear()); // 2025
console.log(date.getMonth()); // 0
console.log(date.getDate()); // 15
Дата у объекта остаётся, просто toTimeString() её не выводит.
toTimeString() не меняет исходную дату
Метод только читает текущее значение даты и возвращает строку.
const date = new Date("2025-01-15T14:30:45.123+03:00");
const before = date.getTime();
const result = date.toTimeString();
console.log(result); // "14:30:45 GMT+0300 (Moscow Standard Time)"
console.log(date.getTime() === before); // true
После вызова метода сам объект Date остаётся прежним.
Чем toTimeString() отличается от toISOString()
Это очень важное сравнение.
toTimeString()возвращает только время и делает это по локальному времениtoISOString()возвращает полную дату и время в форматеISO 8601поUTC
const date = new Date("2025-01-15T23:30:00.000Z");
console.log(date.toTimeString()); // "02:30:00 GMT+0300 (Moscow Standard Time)"
console.log(date.toISOString()); // "2025-01-15T23:30:00.000Z"
Если время нужно для API, базы данных, логов или обмена между системами, чаще используют toISOString().
Чем toTimeString() отличается от toString()
Оба метода работают по локальному времени, но вывод у них разный.
toTimeString()показывает только время и часовой поясtoString()показывает и дату, и время, и часовой пояс
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
console.log(date.toString()); // строка с датой, временем и часовым поясом
Если нужен короткий вариант только со временем, удобнее toTimeString().
Чем toTimeString() отличается от toDateString()
Эти методы похожи по названию, но показывают разные части одной и той же даты.
toDateString()возвращает только датуtoTimeString()возвращает только время
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(date.toDateString()); // "Wed Jan 15 2025"
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
Оба метода используют локальный часовой пояс.
Формат строки лучше не использовать для хранения и точного разбора
Это практический нюанс.
toTimeString() хорошо подходит для вывода и отладки, но не для надёжного хранения времени.
const date = new Date("2025-01-15T14:30:45.123+03:00");
console.log(date.toTimeString()); // "14:30:45 GMT+0300 (Moscow Standard Time)"
Такая строка удобна для чтения человеком, но для сериализации и обмена данными обычно лучше подходят toISOString() или toJSON().
Invalid Date не вызывает ошибку
Это важное отличие от toISOString().
Если дата невалидна, toTimeString() не выбрасывает исключение, а возвращает строку "Invalid Date".
const date = new Date("invalid");
console.log(date.toTimeString()); // "Invalid Date"
Это поведение удобно, но всё равно полезно заранее проверять дату, если она приходит из формы, API или пользовательского ввода.
Когда это полезно
toTimeString() особенно удобен, когда:
- нужно быстро показать время без даты
- вы выводите время в логах или отладочных сообщениях
- важен локальный часовой пояс пользователя
- нужен короткий текстовый вывод со временем и часовым поясом
Пример:
const startedAt = new Date("2025-01-15T14:30:45.123+03:00");
console.log(`Запуск: ${startedAt.toTimeString()}`);
Частые ошибки
Ожидать время по UTC, а не по локальному времени
const date = new Date("2025-01-15T23:30:00.000Z");
console.log(date.toTimeString()); // "02:30:00 GMT+0300 (Moscow Standard Time)"
Метод использует локальный часовой пояс пользователя.
Думать, что метод удаляет дату из объекта
const date = new Date("2025-01-15T14:30:45.123+03:00");
date.toTimeString();
console.log(date.getDate()); // 15
Дата остаётся внутри объекта Date.
Путать toTimeString() и toISOString()
const date = new Date("2025-01-15T23:30:00.000Z");
console.log(date.toTimeString()); // локальное время
console.log(date.toISOString()); // дата и время по UTC
Это методы для разных задач.
Использовать toTimeString() для хранения данных
const date = new Date();
console.log(date.toTimeString());
Для хранения, API и сериализации обычно лучше подходят более предсказуемые форматы вроде toISOString().
Ожидать ошибку у Invalid Date
const date = new Date("invalid");
console.log(date.toTimeString()); // "Invalid Date"
Метод возвращает строку, а не выбрасывает исключение.
Быстрая памятка
toTimeString()вызывается у объектаDate- метод не принимает аргументы
- результатом является строка
- в строке остаётся только время и часовой пояс
- метод работает по локальному времени
- сам объект
Dateне изменяется toTimeString()не подходит для задач, где нуженUTC- точный текст названия часового пояса может отличаться в разных средах
- для невалидной даты метод возвращает строку
"Invalid Date" - для точного хранения и передачи данных чаще используют
toISOString()
Коротко
toTimeString() в JavaScript нужен, чтобы получить строку только со временем и часовым поясом. Главное, что стоит запомнить: метод работает по локальному времени, не меняет исходный объект Date, возвращает строку вроде 14:30:45 GMT+0300 (Moscow Standard Time), а для Invalid Date отдаёт строку "Invalid Date".