Timestamp Unix a 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 "ora di inizio" per un processo. Il problema principale con questo è 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. Il (60*60*24) è facile, 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 si riferisca ad esso.
Saluti
Davide
Re: Timestamp Unix a data e ora realiPenso che dovrebbe essere sufficiente se si rimuove unix zero time dal datetime di JMP poiché entrambi sono in secondi. Speriamo che tu non debba 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 a data e ora realiLa mia domanda è esattamente l'opposto, come posso convertire il tempo reale in timestamp Unix?
Re: Timestamp Unix a data e ora realiGià.... sapevo che mi stavo perdendo qualcosa lol. Grazie!
Re: Timestamp Unix a data e ora realiHai cliccato su "Data" per la selezione del formato da cui scegliere. Seleziona "Ora" e ti darà tutti i formati di data/oraRe: Timestamp Unix a data e ora realiCiao Bill,
So che questo post è di un'eternità fa, ma sto cercando di fare la stessa cosa e fallendo. 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 fornite solo le opzioni per selezionare le numerose varianti di m/g/a. 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 fatto un ottimo punto.Non utilizzare la stringa di caratteri "MDYHMS" se vuoi fare un po' di matematica con i tuoi timestamp.Usa le informazioni sulla colonna per formattare i tuoi nuovi orari come dati continui.

Re: Timestamp Unix a data e ora realiJeff/ Bill,
Ho notato che era anche in pochi secondi, ma ho usato la formattazione disponibile per trasformarlo nel tempo "corretto".
Grazie ancora.
Davide
Re: Timestamp Unix a data e ora realiJeff,
Avevo notato che il 4 gennaio 1904 spuntava fuori un certo numero di volte e ho pensato che fosse un errore di formattazione o calcolo che avevo commesso, questo ha solo aggiunto alla mia confusione il motivo per cui non riuscivo a far funzionare questa conversione della data.
Grazie per l'aiuto
Davide
Re: Timestamp Unix a data e ora realiUn'altra aggiunta: ho parlato con Jeff offline e ha fatto un ottimo punto.Non utilizzare la stringa di caratteri "MDYHMS" se vuoi fare un po' di matematica con i tuoi timestamp.Usa le informazioni sulla colonna per formattare i tuoi nuovi orari come dati continui.

Re: Timestamp Unix a 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

Fattura
Re: Timestamp Unix a 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 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. È possibile utilizzare la funzione Date DMY() per eseguire questa operazione:

-Jeff
Re: Timestamp Unix a data e ora realiprova 1jan1970 senza virgolette.
formato( 1gen1970+1445432452, "mdy")
"21/10/2015"
(Questo è oggi, per riferimento futuro.ho ottenuto Convertitore Epoch - Convertitore di timestamp Unix per darmi il tempo di Unix per oggi: 1445432452 )
l'aggiunta di 1jan1970 funziona perché il tempo Unix per 1jan1970 è zero.E poiché JMP e Unix contano entrambi in pochi secondi.
Fai attenzione, ho visto alcune discussioni su quando iniziò 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).