web-dev-qa-db-de.com

ISO-8601-Zeichenfolge bis Datum in Google Sheets-Zelle

Ich habe eine Reihe von ISO-8601-formatierten Zeichenfolgen in einer Spalte meines Blatts. Wie kann ich Google Sheets veranlassen, sie als Datumsangaben zu behandeln, damit ich sie berechnen kann (Unterschied in Minuten zwischen beispielsweise zwei Zellen)? Ich habe nur =Date("2015-05-27T01:15:00.000Z") ausprobiert, aber keine Freude. Es muss einen einfachen Weg geben, dies zu tun. Irgendein Rat?

41
Bob Kuhar

Um einen tatsächlichen Datumswert zu erhalten, den Sie mit der normalen Zahlenformatierung formatieren können ...

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

z.B.

╔═══╦══════════════════════╦════════════════════╗
║   ║          A           ║          B         ║
╠═══╬══════════════════════╬════════════════════╣
║ 1 ║ 2016-02-22T05:03:21Z ║ 2/22/16 5:03:21 AM ║
╚═══╩══════════════════════╩════════════════════╝
  • Angenommen, Zeitstempel sind in UTC
  • Ignoriert Millisekunden (obwohl Sie leicht genug hinzufügen können)

Die Funktion DATEVALUE() wandelt eine formatierte Datumszeichenfolge in einen Wert um, und TIMEVALUE() macht dasselbe für Zeiten. In den meisten Tabellen werden Datums- und Uhrzeitangaben durch eine Zahl dargestellt, bei der der ganzzahlige Teil Tage seit dem 1. Januar 1900 und der Dezimalteil die Zeit als Bruchteil des Tages ist. Beispielsweise ist der 11. Juni 2009, 17:30 Uhr, ungefähr 39975.72917.

Die obige Formel analysiert den Datums- und den Zeitteil getrennt und addiert sie dann zusammen.

60
rcoup

Versuche dies

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

Dabei kann A1 eine Zelle mit einer ISO-8601-formatierten Zeichenfolge oder die Zeichenfolge selbst sein.

16
Akshin Jalilov

Ich fand es viel einfacher, =SUM(SPLIT(A2,"TZ")) zu verwenden

Format yyyy-MM-dd HH:mm:ss.000, um den Datumswert wieder als ISO-8601 anzuzeigen.

15
Chris Bandy