Informat (ParseDate) Funktion mit ZeitHallo,
Ich habe eine Frage zur Informat-Funktion (oder ihrem Alias ParseDate). Wenn ich eine Zeichenfolge mit Datums- und Uhrzeitinformationen habe und versuche, das Datum auf JMP 15.2.0 zu analysieren.
str="2022-10-22 16:25:37";
datetime= Informat( str, "yyyy-mm-dd HH:mm:ss" );
show(type(datetime));
show(datetime);
Ich erhalte unterschiedliche Arten von Ausgaben, abhängig von den Datums- und Uhrzeiteinstellungen (Win 10).
Regionalformat Englisch (Vereinigtes Königreich):
str = "2022-10-22 16:23:37";
Type(datetime) = "Datum";
datetime = 22Oct2022:16:23:37;
Oder Regionalformat Finnisch (Finnland):
str = "2022-10-22 16:23:37";
Type(datetime) = "Nummer";
datetime = .;
Gibt es eine Funktion, die auch die Zeit analysieren könnte? Oder gibt es Vorschläge, wie das gehen könnte?
SkripterstellungWindowsBetreff: Funktion (ParseDate) mit Uhrzeit informierenPrüfen Sie, ob die Verwendung von << Use Locale() überhaupt hilft.
JMP war ziemlich schlecht darin, die Zeit (und Daten) vor JMP16 zu verwalten. Ich würde die Zeichenfolge höchstwahrscheinlich in Jahr, Monat, Tag, Stunde, Minute und Sekunde analysieren. Dann summieren Sie diese, um date_time zu erhalten. Mit JMP16 könnten Sie höchstwahrscheinlich nur Formatmuster verwenden
Vielleicht kann das ein paar Ideen geben:
Names Default To Here(1);
str = "2022-10-22 16:25:37";
date = Word(1, str, " ");
time = Word(2, str, " ");
y = Num(Word(1, date, "-"));
m = Num(Word(2, date, "-"));
d = Num(Word(3, date, "-"));
time_separator = Left(Regex(Format(Today(), "h:m:s"), "\d", "", GLOBALREPLACE), 1);
hh = Num(Word(1, time, time_separator));
mm = Num(Word(2, time, time_separator));
ss = Num(Word(3, time, time_separator));
date_time = Date DMY(d, m, y) + hh * 60 * 60 + mm * 60 + ss;
AsDate(date_time);
Betreff: Funktion (ParseDate) mit Uhrzeit informierenHier ist eine Möglichkeit, das Problem zu lösen
str="2022-10-22 16:25:37";
datetime = datemdy(num(word(2,str," -:")),
num(word(3,str," -:")),
num(word(1,str," -:")) ) +
3600*num(word(4,str," -:")) +
60 * num(word(5,str," -:")) +
num(word(6,str," -:")
);
show(format(datetime,"m/d/y h:m:s"));
Es zeigt sich im Log
Format(datetime, "m/d/y h:m:s") = "10/22/2022 4:25:37 PM";
Betreff: Funktion (ParseDate) mit Uhrzeit informierenIch habe benutzt << Verwenden Sie Locale(), um Probleme mit Datums- und Zeitformaten zu lösen. Das von Ihnen bereitgestellte Beispiel hat das Problem nicht gelöst. Ich denke, ich komme später darauf zurück, wenn ich Zeit habe (Wortspiel beabsichtigt). Das Problem mit dem Beispiel wird höchstwahrscheinlich mit << Use Locale() gelöst.Ich werde auch Format Pattern ausprobieren, wenn ich eine neuere Version von JMP bekomme.
Nochmals vielen Dank, dass Sie Ihr Wissen teilen.