ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант

Как в Utilites.formatDate() задать русскую локаль?

Добрый день. Задача получить строку формата "май-2020" в Google Apps Script через Utilities.formatDate(). Делаю так:
var newSheetname = Utilities.formatDate(new Date(), "GMT+3", "MMM-d"); // May-2020

Вопрос в том, как поменять локаль с 'en' на 'ru'. Документация говорит, что там используется формат строки, аналогичный SimpleDateFormat в Java, но в Java есть конструктор, который принимает локаль, а тут только дата и 2 строки - часовой пояс и формат.
Решение точно есть, где-то видел это в коде в своё время, но не переписал.
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Не помню, чтобы Utilities поддерживали локали.

Для V8 можно использовать DateTimeFormat

function myFormatDate(date) {
  const y = new Intl.DateTimeFormat('ru',{
    year: 'numeric'
  }).format(date)
  const m = new Intl.DateTimeFormat('ru',{
    month: 'long'
  }).format(date)
  return `${m}-${y}`
}

function test(){
  const date = new Date();
  console.log(Utilities.formatDate(date, "GMT+3", "MMM-yyyy"));
  console.log(myFormatDate(date));
}


По идее, не нужно беспокоиться о производительности в таких местах, в основном они хорошо оптимизируются системой.

Обратите внимание на свой пример, "MMM-d" не вернет год - вернет дату.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы