Я запускаю некоторый код, который использует и вводит отчет из другой системы и использует данные. Этот отчет включает столбец дат в формате YY / MM / DD. Когда я пытаюсь работать с этими данными, электронная таблица и мой код интерпретируют ее как DD / MM / YY. ех. 16 июля 2019 года интерпретируется как 19 июля 2016 года.
Прочитав ряд других сообщений, я понимаю, что это вопрос того, в какой локали отформатирована электронная таблица. Я пробовал несколько форматов, но могуне удается найти языковой стандарт в формате YY / MM / DD
Существует ли языковой стандарт в формате YY / MM / DD? Есть ли какой-нибудь другой способ, которым я могу легко конвертировать эти даты? Со временем у меня будет много данных, ручная настройка и индивидуальный поиск / замена - не варианты.
В худшем случае, я думаю, я могу сохранить данные в массиве и перебрать их, отредактировав их в виде строки, чтобы сдвинуть "YY" и "DD", но это кажется неэффективным, и как будто некоторые должны быть построеныв функциональности.
Редактировать: По просьбе нижеприведенных здесь есть ссылка на тестовый лист, который показывает текущую проблему.
https://docs.google.com/spreadsheets/d/1fLboQyF1ChEAFCpXTeDMU6su55oTgi67EpO_5MTPIdQ/edit?usp=sharing
Также, некоторые примерыcode:
if (Utilities.formatDate(new Date(SelectionList[y][0]), timeZone, 'yyyy-MMM-dd') == Utilities.formatDate(new Date(TotalData[x][2]), timeZone, 'yyyy-MMM-dd')) {
//SelectionList[y][0] == TotalData[x][2]) {
var Surgeon = SelectionList[y][1];
break;
}
}
Как видите, я вызываю две даты из двух массивов (SelectionList [y] [0] и TotalData [x] [2]), а затем пытаюсь найти точку, в которой ониравны. SelectionList - это константа, которую я создал, и поэтому отформатировал ее в формате DD / MM / YYYY, потому что я знал, что это работающий формат. TotalData генерируется отчет и автоматически заполняется в YY / MM / DD. Когда я пытаюсь использовать Utilities.FormatDate, скрипт неверно интерпретирует даты TotalData из-за этого. Честно говоря, меня меньше волнует сценарий, потому что я знаю, почему он не работает. Если я смогу исправить то, как электронная таблица интерпретирует исходную дату, тогда сценарий будет работать нормально.
При редактировании этого ответа я заметил еще одну вещь: когда я выбираю ячейку предоставления, когда ячейка показывает отформатированную дату 18/07/16, строка формул показывает 2016-07-18, ясно показывая, чтоэлектронная таблица интерпретирует 16 как YY.
Кроме того, я просматриваю данные по месяцам. другие месяцы работали без проблем. Теперь я вижу, что ошибка происходит, потому что в начале этого месяца не было никаких данных в течение первых двух недель. Месяцы, которые начинались с 19.06.02, автоматически интерпретировались как ГГ / ММ / ДД по причине, которая ускользает от меня. Это не работает так же в моем тестовом листе.