Problème avec les séparateurs de tempsNous rencontrons quelques difficultés avec les formats d'heure lors de l'importation de données.
Dans notre laboratoire, nous disposons d'un pool d'ordinateurs équipés de Win7 ou de Win10 avec différents paramètres concernant les formats d'heure. Cela semble poser des problèmes lors de la tentative d'importation de données avec horodatage vers JMP12 et 14. Nos horodatages ont le format aaaa-mm-jj hh:mm:ss (par exemple 2018-08-24 13:39:27) et selon l'ordinateur que nous testons, l'importation fonctionne ou échoue, car le format de l'heure doit utiliser soit un deux-points, soit un point.Comment pourrions-nous construire un script d’importation qui fonctionnerait sur toutes les machines ?
Nous nous demandons également pourquoi il n'y a pas de format d'heure fixe dans JMP qui resterait le même malgré les paramètres de Windows ? Après tout, il existe la norme ISO 8601 qui définit les deux points comme séparateur.
Re : Problème avec les séparateurs de tempsIl s’avère que le paramètre proposé par XanGregg était exactement celui que nous recherchions. Au cas où quelqu'un retrouverait cette conversation plus tard, il semble que ce paramètre puisse également être modifié avec le script suivant.
Set preferences( Use JMP Locale Settings( 1 ) );
J'ai également fini par peaufiner un peu notre entrée avec regex comme l'a suggéré markbailey, donc je suis également très reconnaissant pour cette astuce.
Re : Problème avec les séparateurs de tempsMerci beaucoup pour la solution de contournement avec le RegEx. Avec un test rapide, cela semble nous aider à avancer. Je vais également faire des tests avec le paramètre "Spécifique à Windows" lorsque je pourrai accéder à un autre ordinateur. Espérons que ce soit la solution universelle pour nous.
Merci beaucoup pour toute l'aide!
Re : Problème avec les séparateurs de tempsLorsque j'ai changé mon séparateur de temps Win10 en "." et j'ai exécuté le script suivant ci-dessous, il a semblé fonctionner correctement, il me manque donc quelques détails.

Quoi qu’il en soit, voici quelques éléments qui peuvent être utiles dans votre cas.
- Il existe une préférence globale JMP sous « Spécifique à Windows » pour honorer ou non les paramètres régionaux du système.
- Si vous importez la colonne sous forme de texte et l'analysez ultérieurement, la fonction Parse Date() possède un argument Utiliser les paramètres régionaux que vous pouvez désactiver.
s = "time,
2018-08-24 13:39:27
2018-08-25 14:11:22
2018-08-26 16:33:44";
path = "$TEMP/times.csv";
Save Text File( path, s );
Open(path);
Re : Problème avec les séparateurs de tempsDésolé pour la confusion.
Non, cette méthode ne fonctionnera pas car les arguments définissent un format défini et peuvent ne pas inclure d'expressions régulières. Voir mon dernier message pour une autre idée.
Re : Problème avec les séparateurs de tempsEn supposant que vous importez l'horodatage sous forme de chaîne de caractères dans une colonne de données appelée Date Heure, une nouvelle colonne de données numériques avec cette formule devrait donner la date appropriée quel que soit le format utilisé (des deux que vous avez décrits) :
Parse Date(
Regex( :Date Time,
"(\d{4}-\d{2}-\d{2} \d{2})[:\.](\d{2})[:\.](\d{2})",
"\1:\2:\3"
)
);Re : Problème avec les séparateurs de tempsJe me demande si nous parlons de la même chose ou s'il existe un moyen d'utiliser des expressions régulières que je ne connais pas. Je vais essayer d'expliquer notre problème plus clairement.
Nos données ont un format cohérent (hh:mm:ss). Là, le séparateur est toujours un côlon. Par exemple, le JMP sur mon ordinateur fonctionne bien avec ce format et je peux facilement importer ces données simplement en sélectionnant ce format dans le menu du format d'entrée. Lorsque ma collègue essaie de faire la même chose, le JMP sur son ordinateur ne reconnaît pas les données comme étant du temps. Sur son ordinateur, le format de l'heure doit être hh.mm.ss (un point comme séparateur). Par conséquent, afin d'écrire un script pour l'importation, qui fonctionnerait sur ces deux ordinateurs, nous devrons d'abord identifier quel est le format d'heure attendu par JMP sur cette machine particulière.
Les expressions régulières peuvent-elles être utilisées dans le script pour déterminer le format d'entrée ? Actuellement, nous aurions besoin de différents scripts pour différentes machines (un avec deux points et un avec un point).
Format( "y.m.d h:m:s", 22, 0 ), Informat( "y-m-d h:m:s", 0 )<BR />
Format( "y.m.d h.m.s", 22, 0 ), Informat( "y-m-d h.m.s", 0 )<BR />
Pouvons-nous utiliser ceci à la place ?
</CODE><CODE class=" language-jsl">Format( "y.m.d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 22, 0 ), Informat( "y-m-d h<SPAN>[\.:]</SPAN>m<SPAN>[\.:]</SPAN>s", 0 )
Re : Problème avec les séparateurs de tempsC'est pourquoi j'ai suggéré une expression régulière. Vous pouvez utiliser "[\.:]" ou "\.|:" dans le cadre de l'expression de la présence du séparateur. Vous n'avez pas besoin de prédéterminer le format utilisé.
Re : Problème avec les séparateurs de tempsMerci pour la suggestion! Nous avons essayé de modifier les séparateurs et cela peut être fait assez facilement, mais nous n'avons pas trouvé de moyen de détecter quels séparateurs le JMP attend car, selon la machine en question, ils peuvent être soit un point, soit un deux-points. .
Re : Problème avec les séparateurs de tempsVous pouvez utiliser une expression régulière pour faire correspondre les parties de l'une ou l'autre option de formatage ainsi que les fonctions de caractère afin de produire une valeur date-heure JMP cohérente.