Learn JavaScript

toUTCString() - строка даты по UTC в JavaScript

toUTCString() возвращает строку даты и времени по UTC. Метод не меняет объект Date, а просто преобразует его в строку фиксированного формата.

Синтаксис

Базовая запись выглядит так:

date.toUTCString()

Где:

  • date - это объект Date

У метода нет аргументов.

Что возвращает toUTCString()

Метод возвращает строку.

Обычно она выглядит примерно так:

Wed, 15 Jan 2025 11:30:45 GMT

Пример:

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(typeof date.toUTCString()); // "string"
console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

В строке есть:

  • сокращённый день недели
  • день месяца
  • сокращённое название месяца
  • год
  • время
  • GMT в конце

Простой пример

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

Объект был создан из времени +03:00, но toUTCString() вернул строку уже по UTC.

toUTCString() всегда работает по UTC

Это главный момент метода.

toUTCString() не использует локальное время пользователя. Он всегда показывает дату и время именно по UTC.

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.getHours()); // 14
console.log(date.getUTCHours()); // 11
console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

Поэтому toUTCString() удобен, когда нужен единый и предсказуемый вывод времени независимо от часового пояса пользователя.

Формат строки фиксированный и не зависит от локали

Это полезно помнить.

В отличие от toLocaleString(), здесь результат не подстраивается под язык и регион пользователя.

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

День недели и месяц записываются в английских сокращениях, а структура строки остаётся фиксированной.

У строки всегда есть GMT в конце

Это важный нюанс.

Хотя метод работает по UTC, в конце строки используется обозначение GMT.

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

Для практического использования здесь важно понимать одно: строка всё равно описывает момент времени по UTC.

Миллисекунды в результат не попадают

Это ещё одно полезное отличие формата.

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

Даже если у даты есть миллисекунды, toUTCString() их не показывает.

toUTCString() не меняет исходную дату

Метод только читает текущее значение даты и возвращает строку.

const date = new Date("2025-01-15T14:30:45.123+03:00");
const before = date.getTime();
const result = date.toUTCString();

console.log(result); // "Wed, 15 Jan 2025 11:30:45 GMT"
console.log(date.getTime() === before); // true

После вызова метода сам объект Date остаётся прежним.

Чем toUTCString() отличается от toISOString()

Это очень важное сравнение.

  • toUTCString() возвращает строку фиксированного текстового формата по UTC
  • toISOString() возвращает строку в формате ISO 8601 по UTC
const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"
console.log(date.toISOString()); // "2025-01-15T11:30:45.123Z"

Если нужна строка для API, JSON, базы данных или сериализации, чаще используют toISOString().

Если нужен читаемый текстовый вывод по UTC, может быть удобнее toUTCString().

Чем toUTCString() отличается от toString()

Эти методы часто путают, но работают они по-разному.

  • toUTCString() возвращает строку по UTC
  • toString() возвращает строку по локальному времени пользователя
const date = new Date("2025-01-15T23:30:00.000+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 20:30:00 GMT"
console.log(date.toString()); // строка в локальном часовом поясе

Если важна именно локальная дата и время, нужен toString(). Если важен единый UTC, подходит toUTCString().

toGMTString() даёт тот же результат

Это полезный исторический нюанс.

В современных средах toGMTString() работает как алиас для toUTCString().

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"
console.log(date.toGMTString()); // "Wed, 15 Jan 2025 11:30:45 GMT"
console.log(date.toUTCString() === date.toGMTString()); // true

Обычно в новом коде чаще используют именно toUTCString().

Invalid Date не вызывает ошибку

Это важное отличие от toISOString().

Если дата невалидна, toUTCString() не выбрасывает исключение, а возвращает строку "Invalid Date".

const date = new Date("invalid");

console.log(date.toUTCString()); // "Invalid Date"

Это поведение удобно, но всё равно полезно заранее проверять дату, если она приходит из формы, API или пользовательского ввода.

Когда это полезно

toUTCString() особенно удобен, когда:

  • нужно получить строку даты и времени именно по UTC
  • важен единый вывод независимо от локального часового пояса пользователя
  • нужен читаемый текстовый формат без миллисекунд
  • вы работаете с логами, заголовками или серверным временем

Пример:

const expiresAt = new Date("2025-01-15T14:30:45.123+03:00");

console.log(`Expires: ${expiresAt.toUTCString()}`);

Частые ошибки

Ожидать локальное время, а не UTC

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

Метод всегда возвращает строку по UTC.

Путать toUTCString() и toISOString()

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"
console.log(date.toISOString()); // "2025-01-15T11:30:45.123Z"

Оба метода работают по UTC, но формат результата у них разный.

Ожидать миллисекунды в строке

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // "Wed, 15 Jan 2025 11:30:45 GMT"

toUTCString() миллисекунды не показывает.

Думать, что метод зависит от локали пользователя

const date = new Date("2025-01-15T14:30:45.123+03:00");

console.log(date.toUTCString()); // фиксированный формат

Результат не настраивается через локаль и не меняется под язык пользователя.

Ожидать ошибку у Invalid Date

const date = new Date("invalid");

console.log(date.toUTCString()); // "Invalid Date"

Метод возвращает строку, а не выбрасывает исключение.

Быстрая памятка

  • toUTCString() вызывается у объекта Date
  • метод не принимает аргументы
  • результатом является строка
  • строка всегда формируется по UTC
  • в конце строки стоит GMT
  • формат фиксированный и не зависит от локали
  • миллисекунды в результат не попадают
  • toUTCString() не изменяет исходный объект Date
  • для невалидной даты метод возвращает строку "Invalid Date"
  • toGMTString() обычно даёт тот же результат

Коротко

toUTCString() в JavaScript нужен, чтобы получить строку даты и времени по UTC в фиксированном текстовом формате. Главное, что стоит запомнить: метод не зависит от локали, не показывает миллисекунды, не меняет исходный объект Date, возвращает строку с GMT в конце и для Invalid Date отдаёт строку "Invalid Date".