Learn JavaScript

toTimeString() - строка времени в JavaScript

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".