Преобразовать дату строки UTC ISO в метку времени Unix - PullRequest
0 голосов
/ 24 октября 2018

У меня есть эта дата UTC в электронной таблице Google: 2018-10-18T08:55:13Z и я хочу преобразовать ее в метку времени Unix (1539852913).Я пробовал эту формулу, но она не может распознать значение времени:

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

Если я могу получить действительные дату и время, я могу использовать эту формулу для преобразования в метку времени Unix:

=(A1-$C$1)*86400

У кого-нибудь есть решение для этого?

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Проще:

=86400*(left(substitute(A1,"T"," "),19))-2209161600

Заменяет T пробелом и обрезает Z, оставляя то, что осталось распознаваемым как дата и время в арифметических вычислениях.Преобразуйте указатель дня и времени в секунды и настройте смещение.

0 голосов
/ 24 октября 2018

Предполагая, что ваша дата имеет исходные нули для однозначных дней и месяцев, вытащите каждую часть строки даты и поместите ее в формулу DATE следующим образом:

Year
=LEFT(A1,4)

Month
=MID(A1,6,2)

Day
=MID(A1,9,2)

Use the date formula
=DATE(year,month,day)
=DATE(LEFT(A1,4),MID(A1,6,2),MID(A1,9,2))

Аналогичный процесс можно использовать для ВРЕМЕНИ

Hour
=MID(A1,12,2)

Minutes
=MID(A1,15,2)

Seconds
=MID(A1,18,2)

Time
=TIME(Hour,Minutes,Seconds)
=TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2))

1) Существуют другие методы

2) Формулы необходимо будет адаптировать, если у вас нет начальных 0 для каждой единицы.В этом случае вам нужно будет использовать FIND, чтобы определить положение ключевых символов и измерить расстояние между ними, чтобы определить, была ли единичная или двузначная единица.

Поскольку дата является целой частью (слева от десятичной дроби) представляет количество дней с 1900/01/01 (с этой датой 1), а десятичная часть представляет время в виде доли дня, чтобы получить полную дату и время, вы должны добавить формулу датык формуле времени следующим образом:

=DATE(LEFT(A1,4),MID(A1,6,2),MID(A1,9,2))+TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2))
...