Подтвердить что ты не робот

ISO-8601 String to Date в ячейке Google Таблицы

У меня есть строка из отформатированных строк ISO-8601 в столбце моего листа. Как я могу получить листы Google, чтобы рассматривать их как Даты, чтобы я мог выполнять математику (например, разница между двумя ячейками)? Я пробовал просто =Date("2015-05-27T01:15:00.000Z"), но без радости. Должен быть простой способ сделать это. Любые советы?

4b9b3361

Ответ 1

Попробуйте это

=CONCATENATE(TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),1),"yyyy-mm-dd")," ",TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),2),"hh:mm:ss"))

Где A1 может быть ячейкой с форматированной строкой ISO-8601 или самой строкой.

Ответ 2

Чтобы получить фактическое значение даты, которое вы можете форматировать с использованием стандартного форматирования чисел...

=DATEVALUE(MID(A1,1,10)) + TIMEVALUE(MID(A1,12,8))

например.

╔═══╦══════════════════════╦════════════════════╗
║   ║          A           ║          B         ║
╠═══╬══════════════════════╬════════════════════╣
║ 1 ║ 2016-02-22T05:03:21Z ║ 2/22/16 5:03:21 AM ║
╚═══╩══════════════════════╩════════════════════╝
  • Предполагает отметки времени в UTC
  • Игнорирует миллисекунды (хотя вы можете добавить достаточно легко)

Функция DATEVALUE() превращает форматированную строку даты в значение, а TIMEVALUE() то же самое время. В большинстве таблиц даты и время представлены числом, где целая часть - дни с 1 января 1900 года, а десятичная часть - это время как часть дня. Например, 11 июня 2009 года 17:30 составляет около 39975,72917.

Вышеприведенная формула анализирует часть даты и часть времени отдельно, а затем добавляет их вместе.

Ответ 3

Мне было гораздо проще использовать =SUM(SPLIT(A2,"TZ"))

Формат yyyy-MM-dd HH:mm:ss.000, чтобы снова увидеть значение даты как ISO-8601.