Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichWenn Sie JMP16+ haben, können Sie dies möglicherweise mit Format Pattern tun

Anderes Muster ist so etwas wie -- . und andere // ::
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichJim,
Wo stelle ich das ein?
Ich habe es als Formel versucht, hat nicht funktioniert
Ich habe versucht, dies als "Set Format Pattern" einzugeben (wie jthis Vorschlagb) und kann nicht mehr als eine Zeile eingeben.
Ich verwende JMP16
Danke
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichIch habe JMP 16 und es hat nicht funktioniert. Unten sind meine Schritte. Wäre dankbar, wenn Sie auf einen Fehler hinweisen könnten.
Zuerst habe ich eine Formel (die vorher vergessen wurde) eingefügt
Date1.DateTimeFinalFormat = Date1.Char
Setzen Sie Date1.DateTimeFinalFormat Datumstyp/Modellierung auf Numerisch und Kontinuierlich
Stellen Sie das Format auf Muster formatieren ein
Deaktivieren Sie "Ausgabeformat verwenden"
Formatmuster festlegen
// ::
Legen Sie auf der Eingabeseite das Formatmuster fest
-- .
an die ein Fehler ausgegeben wird:

Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichIch habe auch HH auf hh und AMPM auf ampm auf der Eingangsseite geändert.
An einem Punkt akzeptiert es das Format und gibt dann die Date1.DateTime.FinalFormat-Spalte wieder an Character zurück.
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichHallo Altug,
Ich hoffe es geht dir gut - lange ist es her!
Ich gehe davon aus, dass Sie dies per Skript tun. JMP kann viele Datums- und Zeitformate nativ verarbeiten. In diesem Fall ist die Funktion Informat ( ) großartig, da sie einen String in eine Zeit umwandelt.
Ihr Datum kommt einem nativen Format ziemlich nahe. 03.03.22 12.13 Uhr ist kein natives Format, aber 03.03.22 12:13 Uhr ist !
Alles, was Sie also ändern müssen, sind Ihre Bindestriche in Schrägstriche ("-" wird zu "/" ) und Ihr Punkt in einen Doppelpunkt ("." wird zu ":" ).
Der Befehl Substitute ( ) kann dies für Sie erledigen. Sobald dies erledigt ist, können Sie dies in ein Informat ( ) einschließen, um ein numerisches Datum zu erhalten. Sie müssen nur noch Ihr gewünschtes Anzeigeformat anwenden, bei dem es sich um ein Locale-Format handelt.
Der Prozess besteht also darin, eine neue Spalte zu schreiben, die:
a) hat eine Formel, die ein Informat ( ) um ein Substitute ( ) wickelt, und
b) formatiert die Ausgabe so, wie Sie es möchten, wobei das numerische Datum darunter erhalten bleibt.
Lass uns wissen, wie das geht,
Brady
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "FixedDate",
formula( Informat(
Substitute( :"date1.char"n,
"-", "/",
".", ":"
)
) ),
<<FORMAT></FORMAT>

Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichIch hatte ziemlich viele Probleme mit JMP und wie es mit Daten umgeht ( und vor allem mal ), wenn Benutzer unterschiedliche Einstellungen auf dem PC haben. JMP16+ hat es etwas besser gemacht, aber das Debuggen kann immer noch sehr lästig sein, wenn Benutzer unterschiedliche lokale Einstellungen haben.
Die "einfachste" (und robusteste) Option ist (meiner Meinung nach) immer, die Datumszeit basierend auf der Situation von Grund auf neu zu erstellen. Holen Sie sich verschiedene Teile des Datums und der Uhrzeit und verwenden Sie dann beispielsweise Date MDY + Berechnung der Zeit, um JMP datetime zu erhalten. Nachdem Sie die Datetime von JMP haben, können Sie sie nach Bedarf formatieren.
Sie können auch versuchen, das richtige Muster zuerst im Skripteditor zu finden:
Names Default To Here(1);
datetime_str = "03-Mar-22 12.13 PM";
show(datetime_str);
datetime = In Format(
datetime_str,
"Format Pattern",
"<DL><DD>-<MMM>-<YY> <HH>.<MM> <AMPM>"
);
show(datetime);
datestr = Format(datetime, "Format Pattern", "<MM>/</MM></AMPM></MM></HH></YY></MMM></DD><DD>/<YYYY> <HH>:<MM>:<SS> <AMPM>");
show(datestr);
// If I couldn't get Format Pattern fairly quickly, I would just give up and write my own
// parser. Something like this might work
datetime_str = "03-Mar-22 12.13 PM";
months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
date_str = Word(1, datetime_str);
time_str = Word(2, datetime_str);
ampm_str = Word(3, datetime_str);
day_str = Word(1, date_str, "-");
month_str = Word(2, date_str, "-");
year_str = Word(3, date_str, "-");
day_num = Num(day_str);
month_num = Contains(months, month_str);
year_num = 2000 + Num(year_str);
hour_str = Word(1, time_str, ".");
minute_str = Word(2, time_str, ".");
minute_num= Num(minute_str);
hour_num = Num(hour_str);
If(ampm_str == "AM",
if(hour_num == 12,
hour_num -= 12;
);
, ampm_str == "AM",
if(hour_num == 12,
hour_num = 12
,
hour_num += 12
)
);
date_datetime = Date DMY(day_num, month_num, year_num);
time_datetime = In Hours(hour_num) + In Minutes(minute_num);
final_datetime = date_datetime + time_datetime;
As Date(final_datetime);
<P> </P>
<P>Wenn ich mit Daten und Uhrzeiten herumspielen muss, werde ich immer versuchen, das ISO-Format YYYY-MM-DD hh24:mm:ss zu wählen, da es zumindest eine gewisse Hoffnung auf Funktion hat und Sie wissen, wo der Monat ist, ohne Glück zu haben.</P>
<P> </P></AMPM></SS></MM></HH></YYYY></DD></DL>Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichHier ist ein Format, das zu funktionieren scheint
monList = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
Informat(
Char( Contains( monList, Word( 2, :Date1.Char, "-" ) ) ) || "/" || Word( 1, :Date1.Char, "-" ) || "/" || Word( 3, :Date1.Char, "-" ),
"m/d/y h:m"
);
Die obige JSL funktioniert nur, wenn der Punkt im Zeitbereich der Daten in ein Semikolon geändert wird.
Mein Vorschlag ist zu verwenden @brady_brady Lösung unten.
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichBrady,
Es ist lange her und ich hoffe euch geht es gut.
Ihre technische Lösung ist sicherlich gut, da sie großartig funktioniert hat. Am Ende war es so einfach.
Nochmals vielen Dank für Ihre Unterstützung.
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichdanke jthi für deine unterstützung. Werde das auch mal ausprobieren - zumindest um es besser zu lernen.
thx nochmal
Betreff: Hilfe bei der Umwandlung von Zeichen in DateTime erforderlichthx txnelson für deine unterstützung
Hilfe bei der Zeichen-zu-DateTime-Konvertierung erforderlichHallo
Ich füge eine Beispieltabelle für eine einzelne Zeile bei.
Spalte „Datum1“ ist Zeichen
z.B 03.03.22 12.13 Uhr
dh. TT-MMM-JJ HH.MM am/pm
Date2 hat ein Datum/Uhrzeit-Format
Ich benötige eine Formel, insbesondere für Date1, um sie in DateTime mit dem gewünschten Format umzuwandeln
MM/TT/JJJJ HH:MM:SS am/pm
(SS, Sekunden wären automatisch Null)
Mein Ziel ist es, eine Tabelle basierend auf einer zweiten zu aktualisieren (oder zu verknüpfen), sobald ich zwei vergleichbare Datums-/Uhrzeitspalten habe
Hinweis: Ich habe einige Versuche unternommen, bisher hat keiner funktioniert. Schätzen Sie die Hilfe.
Danke
Qualitäts- und Verfahrenstechnik