Google Apps Script: Как получить сегодняшнюю дату?

В Google Apps Script часто возникает необходимость получения текущей даты для различных задач, от автоматизации рутинных процессов до создания отчетов и интеграций с другими сервисами Google.

Зачем получать текущую дату в Google Apps Script?

Получение текущей даты необходимо для:

Автоматизации задач, связанных со временем.

Создания отчетов с временными метками.

Планирования и отслеживания событий.

Интеграции с другими сервисами, требующими временных данных.

Обзор методов получения текущей даты

В Google Apps Script существует несколько способов получения текущей даты, в основном с использованием встроенного объекта Date и утилит для форматирования дат.

Использование объекта `Date` для получения сегодняшней даты

Создание нового объекта `Date`

Самый простой способ получить текущую дату – создать новый объект Date без аргументов. Это создаст объект, представляющий текущее время на момент создания.

/**
 * Получает текущую дату и время.
 * @returns {Date} Текущая дата и время.
 */
function getCurrentDateTime(): Date {
  const now: Date = new Date();
  return now;
}

const today: Date = getCurrentDateTime();
console.log(today); // Выводит текущую дату и время

Особенности часовых поясов и их учет

Важно учитывать, что объект Date создается с учетом часового пояса сервера Google Apps Script. Если вам нужно работать с датами в другом часовом поясе, необходимо использовать методы форматирования и указать желаемый часовой пояс.

Примеры кода получения текущей даты и времени

/**
 * Получает текущую дату.
 * @returns {Date} Текущая дата.
 */
function getCurrentDate(): Date {
  const now: Date = new Date();
  // Можно обнулить время, если нужна только дата
  now.setHours(0, 0, 0, 0);
  return now;
}

const todayOnly: Date = getCurrentDate();
console.log(todayOnly); // Выводит текущую дату без времени

Форматирование даты в Google Apps Script

Использование `Utilities.formatDate()` для форматирования даты

Utilities.formatDate() – мощный инструмент для представления даты в нужном формате. Он позволяет указать формат даты, часовой пояс и объект Date для форматирования.

/**
 * Форматирует дату в заданный формат.
 * @param {Date} date Дата для форматирования.
 * @param {string} timeZone Часовой пояс.
 * @param {string} format Формат даты.
 * @returns {string} Дата, отформатированная в соответствии с заданным форматом.
 */
function formatDate(date: Date, timeZone: string, format: string): string {
  return Utilities.formatDate(date, timeZone, format);
}

Примеры форматирования даты в различные форматы (год-месяц-день, день-месяц-год и т.д.)

const now: Date = new Date();

// Формат год-месяц-день
const yearMonthDay: string = formatDate(now, 'GMT+3', 'yyyy-MM-dd');
console.log(yearMonthDay); // Выводит дату в формате год-месяц-день

// Формат день-месяц-год
const dayMonthYear: string = formatDate(now, 'GMT+3', 'dd-MM-yyyy');
console.log(dayMonthYear); // Выводит дату в формате день-месяц-год

// Формат день.месяц.год час:минута:секунда
const fullDateTime: string = formatDate(now, 'GMT+3', 'dd.MM.yyyy HH:mm:ss');
console.log(fullDateTime);
Реклама

Указание часового пояса при форматировании

Часовой пояс указывается в виде строки, например, ‘GMT+3’ для московского времени или ‘America/Los_Angeles’ для тихоокеанского времени. Убедитесь, что используете правильный часовой пояс для вашей задачи.

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

Запись текущей даты в Google Sheets

/**
 * Записывает текущую дату в Google Sheets.
 */
function writeCurrentDateToSheet(): void {
  const ss: GoogleAppsScript.Spreadsheet.Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet: GoogleAppsScript.Spreadsheet.Sheet = ss.getActiveSheet();
  const now: Date = new Date();
  const formattedDate: string = Utilities.formatDate(now, 'GMT+3', 'yyyy-MM-dd HH:mm:ss');

  sheet.appendRow([formattedDate]);
}

Создание файлов с именем, включающим текущую дату

/**
 * Создает файл с именем, включающим текущую дату.
 */
function createFileWithDateInName(): void {
  const now: Date = new Date();
  const formattedDate: string = Utilities.formatDate(now, 'GMT+3', 'yyyyMMdd_HHmmss');
  const fileName: string = `Отчет_${formattedDate}.txt`;
  
  DriveApp.createFile(fileName, 'Текст отчета', MimeType.PLAIN_TEXT);
}

Отправка электронной почты с текущей датой

/**
 * Отправляет электронное письмо с текущей датой в теле письма.
 */
function sendEmailWithCurrentDate(): void {
  const now: Date = new Date();
  const formattedDate: string = Utilities.formatDate(now, 'GMT+3', 'dd.MM.yyyy');
  const recipient: string = 'recipient@example.com';
  const subject: string = `Сегодняшняя дата: ${formattedDate}`;
  const body: string = `Привет!

Сегодня ${formattedDate}.

С уважением,
Ваш скрипт.`;

  MailApp.sendEmail(recipient, subject, body);
}

Заключение

Краткое резюме методов получения и форматирования даты

В Google Apps Script существует несколько способов работы с текущей датой: создание объекта Date, использование Utilities.formatDate() для форматирования и учет часовых поясов. Всегда учитывайте ваш часовой пояс и необходимый формат при работе с датами.

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

Для простых задач, требующих только текущую дату и время, достаточно создать объект Date.

Для задач, требующих определенного формата даты, используйте Utilities.formatDate().

При работе с датами в разных часовых поясах обязательно указывайте часовой пояс при форматировании.

Для записи в Google Sheets и создания имен файлов, не забывайте приводить дату к строковому представлению с необходимым форматированием.


Добавить комментарий