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 tiempoAquí hay una forma de manejar el problema.
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"));
Se muestra en el registro
Format(datetime, "m/d/y h:m:s") = "10/22/2022 4:25:37 PM";
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.