Datums- und Uhrzeitformat

7

Ich habe viele Daten in der ersten Spalte im Format ausgegeben von IFTTT:

August 23, 2010 at 11:01PM

Gibt es eine Möglichkeit, sie so zu formatieren, dass ich sie dann für Datums- und Zeitberechnungen verwenden kann?

Im Idealfall nimmt die Funktion nur eine zusätzliche Spalte ein.

Jamesmstone
quelle
Ich glaube nicht, dass es eine eingebaute Funktion gibt, die das Datum so formatiert, wie Sie es möchten. Google Drivehat ein eingebautes Script Editor( Tools- Script Editor), mit dem Sie ein benutzerdefiniertes Skript schreiben können, um das zu tun, was Sie wollen. Sie könnten eine Frage stellen, StackOverflowwenn Sie nicht weiterkommen.

Antworten:

9

Ich verwende diese Formel, um die Datums- und Uhrzeitwerte, die IFTTT ausspuckt, in ein nützliches Format umzuwandeln:

=VALUE(SUBSTITUTE(A1, " at ", " "))

Dabei ist A1 die Zelle, die die Datumszeichenfolge enthält

Dies gibt Ihnen eine Dezimalzahl, die Sie als "Datum Uhrzeit" formatieren können.

römisch
quelle
2
Die TIMEVALUEFormel ist nur in den neuen Google Sheets vorhanden.
Jacob Jan Tuinstra
@JacobJanTuinstra Weißt du, ob das auch der Fall ist DATEVALUE?
Jamesmstone
2
@ Jamesmstone Die DATEVALUEFormel existiert in beiden Versionen.
Jacob Jan Tuinstra
2

Die folgende benutzerdefinierte Funktion wandelt die Datumsnotation der Zeichenfolge in eine Datumsnotation um:

Code

function myDate(range) {
  var output = [];  
  for(var i=0, iLen=range.length; i<iLen; i++) {
    var rSplit = range[i][0].split(" "), corr = 0;
    if(rSplit[4].substring(5,7) == "PM") {
      corr = 10;
    }   
    var month = parseInt(new Date(Date.parse(rSplit[0]+"1,2013")).getMonth());
    var day = parseInt(rSplit[1].replace(/,/g, ""));
    var year = parseInt(rSplit[2]);
    var hour = parseInt(rSplit[4].substring(0,2))+corr;
    var min = parseInt(rSplit[4].substring(3,5),10);    
    var nDate = new Date(year, month, day, hour, min);
    output.push([nDate]);
  } 
  return output;
}

Anmerkung

Korrekturen werden vorgenommen, um dies zu berücksichtigen AM/PM. Keine Korrektur für GMT. Fügen Sie dieses Skript über das ToolsMenü in der Tabelle hinzu und wählen Sie Script editor. Speichern Sie das Skript und Sie können loslegen!

Verwendungszweck

myDate(A1:A4)

Beispiel

Ich habe eine Beispieldatei für Sie erstellt: Zeichenfolge Datum bis Datum

Jacob Jan Tuinstra
quelle
Ich glaube, corrsollte 12jedoch gleich sein, da die Bearbeitung weniger als 6 Zeichen
betragen
Nach dem Testen des Codes. Ich habe für die Zeit 11:09PM( unabhängig vom Jahr ) bemerkt, dass es immer zurückkehrt 1/1/1970 11:00:00. So zum Beispiel August 23, 2010 at 11:09PMkehren 1/1/1970 11:00:00 Sie haben keine Ahnung , warum?
Jamesmstone
1
Ich habe @Jacob ‚s Beispiel aktualisiert Blatt zu reflektieren diese
jamesmstone
@ Jamesmstone siehe überarbeiteten Code, es funktioniert für das Beispiel in der Tabelle. Ich musste die parseInt(text, 10)zu Dezimalstellen erzwingen . Das corrist auf eingestellt, corr=10weil dies die gleiche Zeit ergibt. Die verschiedenen Zeitzonen habe ich nicht berücksichtigt.
Jacob Jan Tuinstra
Vielen Dank. Schnelle Frage ist die Funktion parseInt()die gleiche wie das Javascript parseInt(). Verwenden Google-Makros Javascript?
Jamesstone
-3

Sie können auch eines der Skripts für das Anzeigeformat verwenden. Dadurch bleiben die zugrunde liegenden Zahlen mit den normalen Anzeigeformaten identisch und die numerischen Berechnungen von Datum und Uhrzeit werden nicht beschädigt.

Wenn ein Skript nach 'Format' sucht und eine der Nummern und Datumsangaben erhält, ist das zu verwendende Format das gleiche wie die Variante = Text (, ""), ohne dass eine Blattkonvertierung erforderlich ist.

MMMM d, yyyy bei h: mma

Zum:

23. August 2010 um 23:01 Uhr

Weitere Formatierungsoptionen finden Sie unter: http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

AnonAMouse
quelle
3
Warum sollte man Microsoft Developer Network für Formate in Google Spreadsheets besuchen?
Ale