Fonction Informat (ParseDate) avec l'heureSalut,
J'ai une question sur la fonction Informat (ou son alias ParseDate). Si j'ai une chaîne avec des informations de date et d'heure et que j'essaie d'analyser la date sur JMP 15.2.0.
str="2022-10-22 16:25:37";
datetime= Informat( str, "yyyy-mm-dd HH:mm:ss" );
show(type(datetime));
show(datetime);
Je reçois différents types de sorties, en fonction des paramètres de date et d'heure (Win 10).
Format régional anglais (Royaume-Uni) :
str = "2022-10-22 16:23:37" ;
Type(dateheure) = "Date" ;
dateheure = 22oct2022:16:23:37 ;
Ou format régional finnois (Finlande) :
str = "2022-10-22 16:23:37" ;
Type(dateheure) = "Numéro" ;
dateheure = .;
Existe-t-il une fonction qui pourrait également analyser le temps? Ou y a-t-il des suggestions sur la façon dont cela pourrait être fait?
Scriptles fenêtresRe : Fonction Informat (ParseDate) avec l'heureVérifiez si l'utilisation de << Use Locale() aide du tout.
JMP était assez mauvais pour gérer le temps (et les dates) avant JMP16. J'analyserais très probablement la chaîne en année, mois, jour, heure, minute et seconde. Ensuite, additionnez-les pour obtenir date_time. Avec JMP16, vous pouvez très probablement simplement utiliser Format Pattern
Cela peut peut-être donner des idées :
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);
Re : Fonction Informat (ParseDate) avec l'heureVoici une façon de gérer le problème
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"));
Il apparaît dans le journal
Format(datetime, "m/d/y h:m:s") = "10/22/2022 4:25:37 PM";
Re : Fonction Informat (ParseDate) avec l'heurej'ai utilisé << Utilisez Locale() pour résoudre les problèmes de formats de date et d'heure. L'exemple que vous avez fourni n'a pas résolu le problème, je pense que j'y reviendrai plus tard quand j'aurai le temps (jeu de mots). Le problème avec l'exemple est très probablement résolu avec << Use Locale().J'essaierai également Format Pattern, si j'obtiens une version plus récente de JMP.
Merci encore de partager vos connaissances.