Google Script формат строки даты в формате даты - PullRequest
0 голосов
/ 07 ноября 2018

Я получаю данные из внешней системы, она выдает мне формат даты, такой как «21 октября 2017 года». С помощью скрипта Google я хочу изменить его на "2017-10-21"

У меня получилось, но я получил правильные результаты.

Var test = "okt 21, 2017";
     range.setValue(new Date(test.getYear(),test.getMonth(),test.getDay()));
      //range.setValue(Utilities.formatDate(test, "GMT" , "yyyy-MM-dd"));

          //range.setValue(date(value).setNumberFormat("yyyy-MM-dd"));
          //range.setValue(new Date()).setNumberFormat("yyyy-MM-dd");

Вывод, что я получаю: 1970-01-01

Решение не очень удачное, но оно работает

 switch (sheetName) { 
case "sheetnameeeee": 
      range.setValue(dateChange(value)).setNumberFormat("yyyy-MM-dd");
 break; 
} 

function dateChange(value) { 
var dateString = value; 
dateString = dateString.toString().replace("maa", "mar"); 
dateString = dateString.toString().replace("mei", "may"); 
dateString = dateString.toString().replace("okt", "oct"); 
return dateString;} 

1 Ответ

0 голосов
/ 07 ноября 2018

Решение:

  • Установите для языка таблицы German
  • setValue(date string) напрямую.

Фрагмент кода:

var test = "okt 21, 2017"; //Recognized date format in German-Google-Sheets
range.setValue(test).setNumberFormat('yyyy-MM-dd');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...