Función Informat (ParseDate) con tiempoHola,
Tengo una pregunta sobre la función Informat (o su alias ParseDate). Si tengo una cadena con información de fecha y hora, trato de analizar la fecha en 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);
Obtengo diferentes tipos de salidas, según la configuración de fecha y hora (Win 10).
Formato regional Inglés (Reino Unido):
str = "2022-10-22 16:23:37";
Tipo(fechahora) = "Fecha";
fecha y hora = 22 de octubre de 2022: 16:23:37;
O formato regional finlandés (Finlandia):
str = "2022-10-22 16:23:37";
Tipo(fechahora) = "Número";
fechahora = .;
¿Hay alguna función que también pueda analizar el tiempo? ¿O hay sugerencias de cómo se podría hacer esto?
secuencias de comandosventanasRe: función Informat (ParseDate) con tiempoCompruebe si usar << Use Locale() ayuda en algo.
JMP era bastante malo en la gestión de tiempo (y fechas) antes de JMP16. Lo más probable es que analice la cadena en año, mes, día, hora, minuto y segundo. Luego suma esos para obtener date_time. Con JMP16, lo más probable es que solo use Format Pattern
Tal vez esto pueda dar algunas ideas:
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: función Informat (ParseDate) con tiempohe utilizado << Utilice Locale() para solucionar problemas con los formatos de fecha y hora. El ejemplo que proporcionó no resolvió el problema, creo que volveré a esto más tarde cuando tenga tiempo (juego de palabras). El problema con el ejemplo probablemente se resuelva con << Use Locale().También probaré Format Pattern, si obtengo una versión más nueva de JMP.
Gracias de nuevo por compartir tus conocimientos.
Re: Función Informat (ParseDate) con tiempoParece que en Jmp 15.2 Informat simplemente ignoró patrones sofisticados como
datetime= Informat( str, "yyyy-mm-dd HH:mm:ss" );
Incluso el patrón = "hola" da como resultado

En versiones posteriores, Jmp le dirá al usuario:
Formato desconocido: hola
Que funciona:
Informar con la opción Formato Patrón :
<HH><:><MM> <:><SS> " ); mostrar(tipo(fechahora)); mostrar(fechahora);</SS></MM></HH>str="2022-10-22 16:25:37";
datetime= Informat( str, "Format Pattern", "<YYYY><MM></MM></YYYY>