Есть ли какой-либо глобальный формат времени / даты, который может анализировать Google Sheets et c? - PullRequest
0 голосов
/ 08 мая 2020

Существует ли какой-либо глобальный формат метки времени, который может быть автоматически проанализирован и понят большинством основных программ для работы с электронными таблицами? (Но особенно в Google Таблицах.)

Например, рассмотрим метку времени «2020-05-08T02: 53: 03 + 00: 00». Если я попытаюсь вставить это в электронную таблицу как:

1) "2020-05-08T02:53:03+00:00" : not parsed by any major spreadsheet software
2) "2020-05-08T02:53:03Z"      : not parsed by any major spreadsheet software
3) "20200508T025303Z"          : not parsed by any major spreadsheet software
4) "2020-05-08 02:53:03 GMT"   : not parsed by any major spreadsheet software
5) "2020-05-08 02:53:03"       : parses; but only correct if user is in GMT/UTC

Обратите внимание, что я не являюсь пользователем, я не могу автоматически определять часовой пояс пользователя, и я не могу требовать, чтобы они перенастроили свое программное обеспечение электронных таблиц на определенный часовой пояс. . Все, что я могу сделать, это дать им строку, подобную приведенной выше, которую они ожидают вставить в свою электронную таблицу, и она «просто работает». В любой точке мира.

Формат должен быть удобочитаемым (без эпох или серийных номеров Excel). Пользовательские сценарии приемлемы только в том случае, если дедушка может с этим справиться. Дедушка только на прошлой неделе научился копировать / вставить (и до сих пор не простил вам этого). Он использует Excel и бросит в вас ботинок, если вы скажете «Google Таблицы». Или «сценарий». Или «меню». Или «Обама».

Подробности: Я пишу сценарий, который представляет пользователю таблицу, полную временных меток (по сети, электронной почте и т. Д. c). Некоторые пользователи затем копируют / вставляют таблицу в свое программное обеспечение для работы с электронными таблицами, и они ожидают, что это программное обеспечение автоматически и правильно проанализирует временные метки, чтобы их можно было преобразовать в местный часовой пояс пользователя, можно было использовать в математике электронных таблиц и т. Д. c . Это, конечно, требует, чтобы я предоставил им формат, в котором часовой пояс не нужен или четко указан. Как и большинство кодировщиков, я могу легко преобразовать метки времени в любой строковый формат.

Rant: Стандартные форматы ISO 8601 (примеры 1-3 выше) были созданы специально для этой цели. Поэтому я был шокирован, обнаружив, что даже функция datevalue () в Google Таблицах не может их проанализировать. Я имею в виду, Google не может разобрать ISO 8601? Google ?? Это настолько невероятно, что мне нужно независимое подтверждение. Потому что я, должно быть, чего-то упускаю. Должен быть какой-то глобальный формат метки времени, который может проанализировать Google.

Я имею в виду, давай. Это 2020 год. И это Google.

1 Ответ

0 голосов
/ 08 мая 2020

С помощью скрипта Google Apps вы можете анализировать даты с помощью formatDate(date, timeZone, format) следующим образом:

function myFunction() {
  var date = new Date('2020-05-08T02:53:03+00:00');

  var formattedDate = Utilities.formatDate(date, "GMT", "yyyy-MM-dd HH:mm:ss");

  Logger.log(formattedDate);
}

И вы также можете получить часовой пояс пользователя с помощью getScriptTimeZone() .

С его помощью вы можете заставить пользователя использовать этот скрипт на Таблицах и с помощью триггера onOpen () или onEdit () переформатировать все даты в их зону

...