Frage ISO-8601-Zeichenfolge in Google Sheets-Zelle


Ich habe eine Reihe von ISO-8601 formatierten Strings in einer Spalte meines Blattes. Wie kann ich Google-Tabellen dazu bringen, sie als Daten zu behandeln, damit ich sie mathematisch darstellen kann (z. B. Unterschiede in Minuten zwischen zwei Zellen)? Ich habe es einfach versucht =Date("2015-05-27T01:15:00.000Z") aber keine Freude. Es muss einen einfachen Weg geben, dies zu tun. Irgendein Rat?


23
2018-05-27 20:47


Ursprung


Antworten:


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"))

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


14
2018-05-28 06:00



Um einen tatsächlichen Date-Wert zu erhalten, den Sie mit normaler 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 ║
╚═══╩══════════════════════╩════════════════════╝
  • Nimmt an, dass Zeitstempel in UTC angegeben sind
  • Ignoriert Millisekunden (obwohl Sie leicht genug hinzufügen könnten)

Das DATEVALUE() Funktion wandelt eine formatierte Datumszeichenfolge in einen Wert um und TIMEVALUE() macht das auch mal. In den meisten Tabellen werden Datum und Uhrzeit durch eine Zahl dargestellt, wobei der ganzzahlige Teil Tage seit dem 1. Januar 1900 und der Dezimalteil die Zeit als Bruchteil des Tages ist. Zum Beispiel, 11 Juni 2009 17:30 ist etwa 39975.72917.

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


32
2018-03-23 11:01



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

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


12
2018-05-12 21:14