Получить текущую дату и время в Node.js
В Node.js получить текущую дату и время можно с помощью встроенного объекта Date. Ниже приведены несколько полезных способов — от простого вывода до форматированной строки, подходящей для логов или имен файлов.
✅ 1. Простой способ: текущая дата и время
const now = new Date();
console.log(now.toString());
// Пример: Thu Nov 20 2025 14:30:45 GMT+0300 (Moscow Standard Time)
✅ 2. ISO-формат (удобен для хранения и API)
const iso = new Date().toISOString();
console.log(iso);
// Пример: 2025-11-20T11:30:45.123Z
⚠️ Обратите внимание:
.toISOString()возвращает время в UTC, а не в вашем локальном часовом поясе.
✅ 3. Форматирование под локаль (например, для логов на русском)
const options = {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
};
const localTime = new Date().toLocaleString('ru-RU', options);
console.log(localTime);
// Пример: 20.11.2025, 14:30:45
✅ 4. Кастомный формат (например, для имени файла или лога)
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0'); // Месяцы с 0
const day = String(now.getDate()).padStart(2, '0');
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
const formatted = `${year}-${month}-${day}_${hours}-${minutes}-${seconds}`;
console.log(formatted);
// Пример: 2025-11-20_14-30-45
🔸 Такой формат безопасен для использования в именах файлов (не содержит
:,/, пробелов и т.п.).
✅ 5. Использование с fs для создания лог-файла
import { writeFile } from 'fs/promises';
import { join } from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
// Для ES-модулей (__dirname эмуляция)
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const now = new Date();
const timestamp = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}-${String(now.getMinutes()).padStart(2, '0')}-${String(now.getSeconds()).padStart(2, '0')}`;
const logPath = join(__dirname, 'logs', `log_${timestamp}.txt`);
await writeFile(logPath, `Лог создан: ${now.toString()}\n`, { flag: 'a' });
console.log('Лог записан в:', logPath);
Если нужно учитывать часовой пояс (например, МСК), можно использовать библиотеки вроде luxon или date-fns-tz , но для большинства задач стандартного Date достаточно.
Share this content:

Отправить комментарий