GetUTCFullYear: примеры (JAVASCRIPT)

Получение года по UTC: метод getUTCFullYear в JavaScript
Раздел: Дата и время, UTC методы
getUTCFullYear: number

Функция getUTCFullYear в JavaScript

Метод getUTCFullYear() возвращает год указанной даты по всемирному координированному времени (UTC). Этот метод применяется к экземплярам объекта Date.

Использование функции актуально при необходимости работать с датами независимо от локального времени пользователя, например, в международных приложениях, системах логирования или при синхронизации данных между серверами в разных часовых поясах.

Метод не принимает аргументов. Он возвращает целое число, представляющее год указанной даты по UTC. Для дат в диапазоне от 1000 до 9999 года возвращается четырехзначное число, например, 2024. Для дат за пределами этого диапазона возвращается соответствующее число, которое может быть отрицательным или состоять из более чем четырех цифр.

Краткие примеры использования

Получение года из текущей даты:

const now = new Date();
console.log(now.getUTCFullYear());
// 2024 (результат зависит от текущей даты)

Получение года из конкретной даты:

const date = new Date('2025-08-15T12:00:00Z');
console.log(date.getUTCFullYear());
// 2025

Использование с датой до 1000 года:

const oldDate = new Date('0456-03-01T00:00:00Z');
console.log(oldDate.getUTCFullYear());
// 456

Использование с датой после 9999 года:

const futureDate = new Date('15000-01-01T00:00:00Z');
console.log(futureDate.getUTCFullYear());
// 15000

Похожие функции в JavaScript

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

getYear() - устаревший метод, возвращающий год минус 1900 для дат в XX и XXI веках. Не рекомендуется к использованию.

getUTCFullYear() следует выбирать для согласованной работы с датами на сервере и клиенте в UTC, тогда как getFullYear() лучше подходит для отображения дат в локальном формате.

Типичные ошибки

Использование метода для неинициализированных дат:

const invalidDate = new Date('invalid string');
console.log(invalidDate.getUTCFullYear());
// NaN

Путаница между локальным временем и UTC:

const date = new Date('2024-01-01T00:00:00'); // Локальный часовой пояс
console.log('UTC год:', date.getUTCFullYear());
console.log('Локальный год:', date.getFullYear());
// Разница может появиться при переходе через полночь по UTC

Ожидание строкового формата вместо числа:

const year = new Date().getUTCFullYear();
console.log(year + 10); // Математическая операция
console.log(year + '10'); // Конкатенация строк
// 2034
// "202410"

Изменения в последних версиях

Спецификация ECMAScript не вносила существенных изменений в работу метода getUTCFullYear() в последних версиях. Поведение метода остается стабильным с момента его введения в стандарт ECMA-262.

В современных браузерах и средах выполнения JavaScript метод корректно работает с датами в расширенном диапазоне, включая даты до 100 года и после 9999 года, что соответствует стандарту ECMAScript.

Расширенные примеры использования

Расчет возраста с учетом UTC:

Пример javascript
function calculateAgeUTC(birthDate) {
    const now = new Date();
    let age = now.getUTCFullYear() - birthDate.getUTCFullYear();
    const monthDiff = now.getUTCMonth() - birthDate.getUTCMonth();
    if (monthDiff < 0 || (monthDiff === 0 && now.getUTCDate() < birthDate.getUTCDate())) {
        age--;
    }
    return age;
}
const birth = new Date('1990-05-15T00:00:00Z');
console.log(calculateAgeUTC(birth));
// Результат зависит от текущей даты

Определение високосного года по UTC:

Пример javascript
function isLeapYearUTC(date) {
    const year = date.getUTCFullYear();
    return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}
console.log(isLeapYearUTC(new Date('2024-02-29T00:00:00Z')));
console.log(isLeapYearUTC(new Date('2023-02-29T00:00:00Z')));
// true
// false (дата корректируется на 1 марта)

Сравнение финансовых кварталов в UTC:

Пример javascript
function getUTCFinancialQuarter(date) {
    const utcMonth = date.getUTCMonth(); // 0-11
    const utcYear = date.getUTCFullYear();
    const quarter = Math.floor(utcMonth / 3) + 1;
    return { year: utcYear, quarter: quarter };
}
const q = getUTCFinancialQuarter(new Date('2024-11-15T00:00:00Z'));
console.log(`Q${q.quarter} ${q.year}`);
// Q4 2024

Обработка исторических дат:

Пример javascript
const historicalDate = new Date('0001-01-01T00:00:00Z');
console.log(historicalDate.getUTCFullYear());
console.log(new Date('-000001-01-01T00:00:00Z').getUTCFullYear());
// 1
// -1

Аналоги функции в других языках

PHP: date('Y', $timestamp) с предварительным установлением часового пояса UTC через date_default_timezone_set('UTC').

date_default_timezone_set('UTC');
echo date('Y', strtotime('2024-05-15'));
// 2024

Python: метод year объекта datetime с часовым поясом UTC.

from datetime import datetime, timezone
dt = datetime(2024, 5, 15, tzinfo=timezone.utc)
print(dt.year)
# 2024

MySQL: функция YEAR() с преобразованием в часовой пояс UTC.

SELECT YEAR(CONVERT_TZ('2024-05-15', '+00:00', @@session.time_zone));
/* 2024 */

C#: свойство Year структуры DateTime с указанием DateTimeKind.Utc.

DateTime date = new DateTime(2024, 5, 15, 0, 0, 0, DateTimeKind.Utc);
Console.WriteLine(date.Year);
// 2024

JS getUTCFullYear function comments

En
GetUTCFullYear Returns the year in the specified date according to universal time