Timestamp Unix su data e ora reali<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estraggo i dati da un database e parte di questo è un "orario di inizio" per un processo. Il problema principale è che è in formato UNIX quindi restituisce un numero di 10 cifre, so che la formula per convertirlo in data e ora effettive è la seguente
(tratto da Excel)
=CELLA/(60*60*24)+"1/1/1970"
quindi cambiare una colonna in JMP dovrebbe essere semplice ma non riesco a farlo. (60*60*24) è semplice, ma su quale formato devo impostare +"1/1/1970" per farlo funzionare?
Ho allegato una tabella di dati che contiene alcune date degli ultimi 6 anni come esempio. La mia sensazione è che questo potrebbe essere stato chiesto prima, ma non riesco a vedere nulla che lo riguardi.
Saluti
Davide
Re: Timestamp Unix su data e ora realiCIAO @Jeff_Perkinson ,
qualcosa di simile a Conversione del fuso orario .
Il video dentro @jthi Il post di mostra ordini di emissione più elevati, ma anche per una "semplice" conversione dall'ora UTC all'ora legale/solare tedesca una funzione JSL potrebbe far risparmiare molto tempo.
Re: Timestamp Unix su data e ora realiNon c'è nulla di integrato, ma di solito è solo questione di aggiungere/sottrarre ore (in secondi) da un orario.
Di quale aiuto hai bisogno?
Re: Timestamp Unix su data e ora reali
@jthi ha scritto:
... Spero che tu non debba toccare i fusi orari
e se devo, Jmp può aiutarmi?
Re: Timestamp Unix su data e ora realiGrazie!
Re: Timestamp Unix su data e ora realiPenso che dovrebbe essere sufficiente rimuovere l'ora zero unix dal datetime di JMP poiché entrambi sono in secondi. Spero di non dover toccare i fusi orari ( Il problema con l'ora e i fusi orari - Computerphile (youtube.com) )
Names Default To Here(1);
unix_zero = Date MDY(1,1,1970);
date_now = Today();
unix_time = date_now - unix_zero;
// In Hours() might be helpful if you need timezone conversion
// just to verify that time is correct I'm using Unix Timestamp converter REST API from https://unixtime.co.za/
aa = Associative Array();
aa["timestamp"] = unix_time;
request = New HTTP Request(
URL("https://showcase.api.linx.twenty57.net/UnixTime/fromunix"),
Method("GET"),
Query String(aa)
);
data = request << send;
Show(As Date(date_now));
show(data);
Re: Timestamp Unix su data e ora realiLa mia domanda è esattamente l'opposto: come posso convertire il tempo reale in timestamp Unix?
Re: Timestamp Unix su data e ora realiSì... sapevo che mi mancava qualcosa lol. Grazie!
Re: Timestamp Unix su data e ora realiHai cliccato su "Data" per la selezione del formato da cui scegliere. Seleziona "Ora" e ti verranno forniti tutti i formati data/oraRe: Timestamp Unix su data e ora realiCiao Bill,
So che questo post risale a molto tempo fa, ma sto cercando di fare la stessa cosa e non ci riesco. Ho la formula e tutto l'input nella nuova colonna, ma non riesco a trovare l'opzione per selezionare m/d/yh:m:s per la convenzione della data. Mi vengono date solo le opzioni per selezionare le numerose varianti di m/d/y. C'è qualcosa che mi manca per ottenere l'ora inclusa nell'output della data? Grazie.


@Bill_Worley ha scritto:
Un'altra aggiunta: ho parlato con Jeff offline e ha sottolineato molto bene.Non utilizzare la stringa di caratteri "MDYHMS" se vuoi fare qualche calcolo con i tuoi timestamp.Utilizza le informazioni sulla colonna per formattare i nuovi orari come dati continui.

Re: Timestamp Unix su data e ora realiJeff/Bill,
Ho notato che era anche in secondi, ma ho utilizzato la formattazione disponibile per trasformarlo nell'ora "corretta".
Grazie ancora.
Davide
Re: Timestamp Unix su data e ora realiJeff,
Avevo notato che il 4 gennaio 1904 veniva visualizzato diverse volte e pensavo che si trattasse di qualche errore di formattazione o di calcolo che avevo commesso, questo non faceva altro che aumentare la mia confusione sul motivo per cui non riuscivo a far funzionare questa conversione della data.
Grazie per l'aiuto
Davide
Re: Timestamp Unix su data e ora realiUn'altra aggiunta: ho parlato con Jeff offline e ha sottolineato molto bene.Non utilizzare la stringa di caratteri "MDYHMS" se vuoi fare qualche calcolo con i tuoi timestamp.Utilizza le informazioni sulla colonna per formattare i nuovi orari come dati continui.

Re: Timestamp Unix su data e ora realiSolo un'aggiunta al post di Jeff.Quando ho usato la sua formula ho recuperato il numero di secondi.Ho aggiunto il formato MDYHMS alla formula per ottenere data e ora

Conto
Re: Timestamp Unix su data e ora realiLa data UNIX è il numero di secondi trascorsi dalla mezzanotte del 1 gennaio 1970.
JMP memorizza le date come numero di secondi trascorsi dalla mezzanotte del 1 gennaio 1904.
Quindi, dobbiamo solo aggiungere il valore della data JMP per il 1 gennaio 1970 al valore della data Unix. Puoi utilizzare la funzione Date DMY() per fare ciò:

-Jeff
Re: Timestamp Unix su data e ora realiprova 1 gennaio 1970 senza virgolette.
formato( 1gen1970+1445432452, "mdy" )
"21/10/2015"
(Questo è oggi, per riferimento futuro.ho ottenuto Epoch Converter - Convertitore di timestamp Unix per darmi il tempo Unix per oggi: 1445432452 )
aggiungere 1jan1970 funziona perché il tempo Unix per 1jan1970 è zero.E perché JMP e Unix contano entrambi in secondi.
Fai attenzione, ho visto alcune discussioni su quando è iniziata davvero l'epoca di Unix: Tempo di Unix - Wikipedia, l'enciclopedia libera dice
The first edition Unix Programmer's Manual dated 3 November 1971 defines the Unix time as "the time since 00:00:00, 1 January 1971, measured in sixtieths of a second".[5]The User Manual also commented that "the chronologically-minded user will note that 232 sixtieths of a second is only about 2.5 years". Because of this limited range, the epoch was redefined more than once,[citation needed] before the rate was changed to 1 Hz and the epoch was set to its present value of 1 January 1970 00:00:00 UTC. This yielded a range of about 136 years, though with more than half the range in the past (see discussion of signedness above).