Formattazione dell'ora JMPNon riesco a far funzionare il formato dell'ora.Secondo la guida allo scripting il formato "m/d/yh:m:s" viene utilizzato sia per il formato 12 ore che per quello 24 ore... WTF?Perché mai dovrei desiderare che una funzione dia, volenti o nolenti, l'una o l'altra risposta?Come faccio a farlo funzionare!
time = today(); //3619617166
formattedTime = format(time, "m/d/y h:m:s");
print(formattedTime); //"09/12/2018 5:12:46 PM"
//What I want: "09/12/2018 17:12:46"
Ci sono alcune note criptiche nella Guida allo scripting che mi fanno pensare che scelga 12 o 24 ore in base alle impostazioni del tuo computer, il che è una pessima idea perché non voglio che il mio codice si rompa su metà dei computer dei miei utenti.
Se la formattazione non funziona, esiste una soluzione semplice?
Ri: Formattazione dell'ora JMPSono con te, Chris.La funzione JMP è idiota.Non dovrei scrivere uno script solo per modificare il formato dell'ora da AM/PM a 24 ore.Altri thread hanno fornito formule per questo, nessuna delle quali ha funzionato.Non esiste alcuna ragione per cui questo non dovrebbe essere un formato JMP standard nell'elenco a discesa. Sono passati 3 anni dal tuo post e ancora niente da JMP.
Ri: Formattazione dell'ora JMPGrazie. Ho già votato sulla voce della lista dei desideri. Non mi piace particolarmente nessuno dei formati di data predefiniti, quindi utilizzerei sicuramente questa funzione se fosse disponibile come funzione integrata.Ora che so cosa è richiesto, ho superato la curva di apprendimento e posso formattare le mie date come voglio.La flessibilità illimitata è utile.Ma se provassi a spiegare tutto questo a un utente Excel non programmatore, otterrei sguardi vuoti.Sembra eccessivamente complicato quando Excel è in grado di accettare i formati di data "ddd hh:mm" almeno dal 1997.
Ri: Formattazione dell'ora JMPCiao @Chris_Rodrigues ,
Potresti dare un'occhiata alla funzione qui sotto e, se ti piace, votare per l'idea su Lista dei desideri JMP qui .Uso sempre qualcosa del genere e mi piacerebbe vederlo reso disponibile come funzione integrata.
Names default to here(1);
time = 3619617166;
pad = function( {x}, if(x < 10, "0" || char( x ), char( x )));
formatdatetime = function({time, pattern, prepend=""},
char(substitute(pattern,
prepend || "H", pad(hour(time, 24)),
prepend || "h", pad(hour(time, 12)),
prepend || "M", pad(minute(time)),
prepend || "S", pad(second(time)),
prepend || "m", pad(month(time)),
prepend || "d", pad(day(time)),
prepend || "y", char(year(time)),
prepend || "AP", char(if(hour(time)==24, "AM", if(hour(time, 24)>11,"PM","AM"))),
// the rest of the formatting options..Month name,
// short month name, hours without padding, etc
))
);
formatdatetime(time, "m/d/y h:M:S AP");
// 09/12/2018 05:12:46 PM
formatdatetime(time, "ymd_HMS");
// 20180912_171246
formatdatetime(time, "hour = %h, minute = %M", "%")
// hour = 05, minute = 12Ri: Formattazione dell'ora JMPSui miei grafici volevo utilizzare lo spazio dell'etichetta dell'asse X nel modo più efficiente possibile, quindi non volevo cose come anno, numero di secondi, ecc. "Lun 18:00" è sufficiente.All'inizio pensavo che la funzione Format() sarebbe stata in grado di farlo facilmente, ma alla fine ho utilizzato questo:
Names Default To Here( 1 );
pad = Function( {x}, If( x < 10, "0" || Char( x ), Char( x ) ) );
Char( Match( Day Of Week( :value ), 1, "Sun", 2, "Mon", 3, "Tue", 4, "Wed", 5, "Thu", 6, "Fri", 7, "Sat" ) ) || " " || pad( Hour( :value, 24 ) ) ||
":" || pad( Minute( :value ) );e questo è il risultato:

Ri: Formattazione dell'ora JMPSi prega di dare un'occhiata anche a Guida > Libreria della documentazione JMP > Guida allo scripting e cerca " funzioni personalizzate .' Le informazioni iniziano a pagina 393 per la versione JMP 15.1. Qui troverai anche trasformazioni personalizzate e formati personalizzati. Queste definizioni possono quindi essere utilizzate anche in modo interattivo nell'interfaccia utente di JMP.
Ri: Formattazione dell'ora JMPSono appena andato nella tana del coniglio cercando di capire come far apparire i formati delle date nel modo in cui desidero sui miei grafici.Non mi sarei mai aspettato che fosse così difficile.Quindi devo costruirlo carattere per carattere e eseguire la mia funzione per riempire ore/minuti/secondi con zeri iniziali.Eccezionale.Grazie @ih per la mancia.
Ri: Formattazione dell'ora JMPAlla fine ho aggiunto questo alla lista dei desideri di JMP:
https://community.jmp.com/t5/JMP-Wish-List/JMP-Time-Formatting-12-v-24-hr-control/idi-p/74643#M336
Ri: Formattazione dell'ora JMPGrazie @ih ; è una soluzione decente.Una nota, credo che sia necessario inserire hour(time, 24) per forzarlo su 24 ore.Sembra che l'impostazione predefinita sia 24 ore, ma la documentazione mi fa sentire come se volesse impostare l'impostazione predefinita su 12 ore.
//My update: (just slightly shorter)<BR /><BR />format(time, "m/d/y") || " " || pad(hour(time, 24)) || ":" || pad(minute(time)) || ":" || pad(second(time));
Spero anche che ci sia una soluzione per la stringa di formato personalizzabile.Se non ci sarà una risposta migliore nella prossima settimana, aggiungerò la richiesta alla lista dei desideri di JMP.Speriamo che qualcuno di JMP possa rispondere.
Ri: Formattazione dell'ora JMPSpesso finisco per usare questo genere di cose:
names default to here(1);
time = 3619617166;
pad = function( {x}, if(x < 10, "0" || char( x ), char( x )));
pad(month(time)) || "/" || pad(day(time))|| "/" || char(year(time)) || " " ||
pad(hour(time)) || ":" || pad(minute(time)) || ":" || pad(second(time));
// "09/12/2018 17:12:46"+1 alla soluzione con una stringa di formato personalizzabile.