Re : besoin d'aide pour la conversion de caractères en DateTimeSi vous avez JMP16 +, vous pourrez peut-être le faire avec Format Pattern

L'autre modèle est quelque chose comme -- . et autre // : :
Re : besoin d'aide pour la conversion de caractères en DateTimeJim,
Où est-ce que je mets ça ?
Je l'ai essayé comme une formule, n'a pas fonctionné
J'ai essayé d'entrer ceci comme "Définir le modèle de format" (comme la suggestion de jthi) et je ne peux pas entrer plus d'une ligne.
J'utilise JMP 16
merci
Re : besoin d'aide pour la conversion de caractères en DateTimeJ'ai JMP 16 et cela n'a pas fonctionné. Voici mes étapes. J'apprécierais si vous pouviez pointer une erreur.
J'ai d'abord mis une formule (qui a été oubliée plus tôt) dans
Date1.DateTimeFinalFormat = Date1.Char
Définissez le type de date/modélisation Date1.DateTimeFinalFormat sur Numérique et Continu
Définissez le format sur Format de modèle
Décochez "Utiliser le format de sortie"
Définir le modèle de format
// : :
Du côté de l'entrée, définissez le modèle de format
-- .
à laquelle une erreur est émise :

Re : besoin d'aide pour la conversion de caractères en DateTimeJ'ai également changé HH en hh et AMPM en ampm côté entrée.
À un moment donné, il accepte le format, puis renvoie la colonne Date1.DateTime.FinalFormat à Character.
Re : besoin d'aide pour la conversion de caractères en DateTimeSalut Altug,
J'espère que tu vas bien ça fait longtemps !
Je suppose que vous le faites par script. JMP peut gérer de nombreux formats de date et d'heure de manière native. Lorsque c'est le cas, la fonction Informat ( ) est géniale, car elle convertit une chaîne en une heure.
Votre date est assez proche d'un format natif. 03-Mar-22 12:13 PM n'est pas un format natif, mais 03/Mar/22 12:13 PM l'est !
Ainsi, tout ce que vous avez besoin de changer, ce sont vos tirets en barres obliques ("-" devient "/" ) et votre point en deux-points ("." devient ":" ).
La commande Remplacer ( ) peut le faire pour vous. Une fois cela fait, vous pouvez envelopper cela dans un Informat ( ) pour obtenir une date numérique. Il ne reste plus qu'à appliquer le format d'affichage souhaité, qui est un format Locale.
Le processus consiste donc à écrire une nouvelle colonne qui :
a) a une formule qui enveloppe un Informat ( ) autour d'un Substitute ( ), et
b) formate la sortie comme vous le souhaitez, tout en conservant la date numérique en dessous.
Faîtes-nous savoir comment cela se passe,
brady
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "FixedDate",
formula( Informat(
Substitute( :"date1.char"n,
"-", "/",
".", ":"
)
) ),
<<FORMAT></FORMAT>

Re : besoin d'aide pour la conversion de caractères en DateTimeJ'ai eu ma part de problèmes avec JMP et la façon dont il gère les dates ( et surtout les moments ) lorsque les utilisateurs ont des paramètres différents sur PC. JMP16 + l'a amélioré un peu, mais il peut toujours être très ennuyeux de déboguer si les utilisateurs ont des paramètres locaux différents.
L'option "la plus simple" (et la plus robuste) est toujours (à mon avis) de construire le datetime à partir de zéro en fonction de la situation. Obtenez différentes parties de la date et de l'heure, puis utilisez par exemple Date MDY + calcul de l'heure pour obtenir la date et l'heure JMP. Une fois que vous avez la date et l'heure de JMP, vous pouvez la formater selon vos besoins.
Vous pouvez également faire des essais et des erreurs et essayer d'abord d'obtenir le modèle correct dans l'éditeur de script :
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>Si je dois jouer avec les dates et les heures, j'essaierai toujours d'opter pour le format ISO AAAA-MM-JJ hh24:mm:ss car il a au moins un espoir de fonctionner et vous savez où se trouve le mois sans avoir de chance.</P>
<P> </P></AMPM></SS></MM></HH></YYYY></DD></DL>Re : besoin d'aide pour la conversion de caractères en DateTimeVoici un format qui semble fonctionner
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"
);
Le JSL ci-dessus ne fonctionne que si la période dans la zone temporelle des données est remplacée par un point-virgule.
Ma suggestion est d'utiliser @brady_brady solutions ci-dessous.
Re : besoin d'aide pour la conversion de caractères en DateTimeBrady,
Ça faisait longtemps et j'espère que tu vas bien.
Votre solution technique fonctionne certainement bien, car elle a très bien fonctionné. Au final, c'était si simple.
Merci encore pour votre soutien.
Re : besoin d'aide pour la conversion de caractères en DateTimemerci jthi pour votre soutien. Je vais également essayer celui-ci - au moins pour mieux apprendre.
merci encore
Re : besoin d'aide pour la conversion de caractères en DateTimemerci txnelson pour votre soutien
Besoin d'aide pour la conversion de caractères en dates et heuresSalut
Je joins un exemple de tableau à une seule ligne.
La colonne Date1 est un caractère
par exemple 03-mars-22 12h13
c'est à dire. JJ-MMM-AA HH.MM am/pm
Date2 a un format datetime
J'ai besoin d'une formule pour Date1 en particulier pour la convertir en DateTime avec le format souhaité de
MM/JJ/AAAA HH:MM:SS am/pm
(SS, les secondes seraient automatiquement nulles)
Mon objectif est de mettre à jour une table basée sur une seconde (ou joindre) une fois que je peux 2 colonnes datetime comparables
note: j'ai essayé quelques tentatives, aucune n'a fonctionné jusqu'à présent. Appréciez l'aide.
merci
Ingénierie de la qualité et des procédés