Formateo de fechas asiáticas a fechas cortasMuchas empresas en Asia escriben sus fechas de manera diferente a la de EE. UU. Por ejemplo, el 3 de diciembre de 2021, las empresas asiáticas lo escribirán como 12/03/2021, pero en EE. UU. lo escribiremos como 03/12/2021. Tengo una tabla en la que analizo las fechas y las convierto en fechas cortas. Pero los círculos están equivocados, vea la imagen a continuación. Usé el código de abajo. ¿Cómo le hago saber a JMP que las fechas extraídas de la columna Texto están en este formato días_meses_año y no meses_días_año?
dtlog << New Column( "vStart",Numeric,Continous, Formula(Short Date(Num(LEFT(:Text,8))) )

Adjunto la tabla de datos.
Tabla de datossecuencias de comandosRe: Formatear fechas asiáticas a fechas cortasEn su JSL original, la columna se convirtió automáticamente de numérico/continuo (que tú pediste) a carácter/nominal (porque shortDate() devuelve datos de caracteres). nominal fue recogido en mi ejemplo después de copiar el script de la columna.
Ese es un mensaje útil que le informa que los datos en una columna de caracteres no se formatean. No puede decirte cómo la columna se convirtió en personaje.
En su ejemplo original, esto estaba en la ventana de registro (porque shortdate() devuelve el carácter):
dtlog << Nueva columna( "vStart",Numérico,Continuo, Fórmula(Fecha corta(Num(IZQUIERDA(:Texto,8))) ) )
La columna "vStart" cambió para escribir Carácter para que coincida con la fórmula.
También había una pista en la imagen que adjuntó: los datos de vStart estaban justificados a la izquierda. JMP usa la justificación a la derecha para datos numéricos y la justificación a la izquierda para datos de caracteres.
Re: Formatear fechas asiáticas a fechas cortasRecibí un error:

Re: Formatear fechas asiáticas a fechas cortas¡Gracias, tu solución me funcionó!
Re: Formatear fechas asiáticas a fechas cortasPara el uso de fórmula de columna
Informat( Left( :Text, 8 ), "d/m/y" )
Una vez que se hace num(left(text,8)), es demasiado tarde para arreglarlo; num() ya ha adivinado que la cadena es una fecha y, a veces, ha adivinado el formato incorrecto. Cada fila se realiza de forma independiente, y num() no puede decir que está cambiando de caballo a mitad de camino.
Decirle a informat el formato correcto lo llevará a la mitad del camino. La segunda mitad le dice a la columna que use un formato de visualización. Un formato razonable para verificar es el que detalla los nombres de los meses. Aquí hay una nueva declaración de columna completa:
New Column( "vStart",
Numeric, "Nominal",
Format( "Date Long", 35 ),
Input Format( "Locale Date" ),
Formula( Informat( Left( :Text, 8 ), "d/m/y" ) )
)
looks correct, Nov and Dec line up.looks correct, Nov and Dec line up.parece correcto, noviembre y diciembre se alinean.
editar: El formato de entrada (usando la fecha de configuración regional) es una tontería a menos que luego elimine la fórmula de la columna. El formato de entrada se usa si escribe un valor, pero no puede escribir valores en una columna de fórmula. Probablemente querrá el formato preferido de la configuración regional si estuviera volviendo a ingresar "Viernes, 3 de diciembre de 2021". los formato (usando Date Long) controla cómo se formatea el número para su visualización. El valor real almacenado, debajo de las cubiertas, es el número de segundos desde el 1 de enero de 1904. eso es lo que informar función devuelta.
Probablemente desee continuo, no nominal. Quizás.
Re: Formatear fechas asiáticas a fechas cortasdtlog << New Column( "vStart", Numeric, Continuous, Formula(Short Date(Num(LEFT(:Text,8)))));
dtlog:vStart << Format( "d/m/y", 12 );
Re: Formatear fechas asiáticas a fechas cortashola mzwald,
¿Cómo lo fusiono con mi código?
dtlog << New Column( "vStart",Numeric,Continous, Formula(Short Date(Num(LEFT(:Text,8))) )
Re: Formatear fechas asiáticas a fechas cortasRealice estos pasos:
1. Haga clic derecho en su columna vStart que tiene las fechas numéricas
2. Seleccione "Información de la columna..."
3. Cambie el formato de Mejor haciendo clic en "Mejor > Fecha > d/m/y"
4. Haga clic en Aceptar
dtlog:vStart << Format( "d/m/y", 12 );