Formattazione delle date asiatiche in date breviMolte aziende in Asia digitano le loro date in modo diverso da quello degli Stati Uniti. Ad esempio, il 3 dicembre 2021, le aziende asiatiche lo digiteranno come 03/12/2021 ma negli Stati Uniti lo digitiamo come 03/12/2021. Ho una tabella in cui analizzo le date e le converto in date brevi. Ma quelli del cerchio sono sbagliati, vedi l'immagine sotto. Ho usato il codice qui sotto. Come faccio a far sapere a JMP che le date estratte dalla colonna Testo sono in questo formato giorni_mesi_anno e non mesi_giorni_anno?
dtlog << New Column( "vStart",Numeric,Continous, Formula(Short Date(Num(LEFT(:Text,8))) )

In allegato la tabella dei dati.
Tabella datiSceneggiaturaRe: Formattazione di date asiatiche in date breviNel tuo JSL originale, la colonna è stata automaticamente convertita da numerico/continuo (che hai richiesto) a carattere/nominale (perché shortDate() restituisce i dati dei caratteri.) Il nominale è stato raccolto nel mio esempio dopo aver copiato lo script della colonna.
Questo è un messaggio utile che ti informa che i dati in una colonna di caratteri non vengono formattati. Non può dirti come la colonna sia diventata carattere.
Nel tuo esempio originale, questo era nella finestra di registro (perché shortdate() restituisce il carattere):
dtlog << Nuova colonna( "vStart",Numeric,Continous, Formula(Short Date(Num(LEFT(:Text,8))))))
La colonna "vStart" è stata modificata per digitare il carattere in modo che corrisponda alla formula.
C'era anche un suggerimento nell'immagine che hai allegato: i dati vStart erano giustificati a sinistra. JMP utilizza la giustificazione a destra per i dati numerici e la giustificazione a sinistra per i dati dei caratteri.
Re: formattazione di date asiatiche in date breviho ricevuto un errore:

Re: Formattazione di date asiatiche in date breviGrazie, la tua soluzione funziona per me!
Re: Formattazione di date asiatiche in date breviPer la formula della colonna utilizzare
Informat( Left( :Text, 8 ), "d/m/y" )
Una volta terminato num(left(text,8)), è troppo tardi per risolverlo; num() ha già intuito che la stringa è una data e, a volte, ha indovinato il formato sbagliato. Ogni riga viene eseguita in modo indipendente e num() non può dire che sta cambiando cavallo a metà flusso.
Dire a informat il formato corretto ti porterà a metà strada. La seconda metà dice alla colonna di utilizzare un formato di visualizzazione. Un formato ragionevole per il controllo è quello che esplicita i nomi dei mesi. Ecco una nuova istruzione di colonna 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.sembra corretto, novembre e dicembre si allineano.
modifica: il formato di input (usando la data locale) è sciocco a meno che non si rimuova in seguito la formula dalla colonna. Il formato di input viene utilizzato se si digita un valore, ma non è possibile digitare valori in una colonna formula. Probabilmente vorresti il formato preferito della locale se dovessi reinserire "venerdì 3 dicembre 2021". Il formato (usando Date Long) controlla come il numero viene formattato per la visualizzazione. Il valore effettivo memorizzato, sotto le coperte, è il numero di secondi trascorsi dal 1gen1904. Questo è ciò che il informato funzione restituita.
Probabilmente vuoi continuo, non nominale. Forse.
Re: Formattazione di date asiatiche in date brevidtlog << New Column( "vStart", Numeric, Continuous, Formula(Short Date(Num(LEFT(:Text,8)))));
dtlog:vStart << Format( "d/m/y", 12 );
Re: Formattazione di date asiatiche in date breviciao mzwald,
Come faccio a unirlo al mio codice?
dtlog << New Column( "vStart",Numeric,Continous, Formula(Short Date(Num(LEFT(:Text,8))) )
Re: Formattazione di date asiatiche in date breviEsegui questi passaggi:
1. Fare clic con il pulsante destro del mouse sulla colonna vStart che contiene le date numeriche
2. Seleziona "Informazioni sulla colonna..."
3. Cambia il formato da Migliore facendo clic su "Migliore > Data > g/m/a"
4. Fare clic su OK
dtlog:vStart << Format( "d/m/y", 12 );