Convert date to timestamp in Linux and SunOS
Ciao! E’ la prima volta che ti vedo qua, se vuoi seguirmi sottoscrivi il feed RSS.
If you’re new here, you may want to subscribe to my RSS feed. Thanks for visiting!
Mi e’ capitato di dover convertire delle date in timestamp usando la bash.
In ambienti GNU Linux grazie al comando date (GNU date) e’ possibile farlo con una riga, molto facilmente:
date –utc –date “2007-07-26 11:57:54″ +%s
vi riportera’ l’output:
1185451074
La data in questo caso deve essere nel formato americano: yyyy-mm-dd hh:MM:ss
I problemi si presentano quando non si ha a disposizione il comando GNU date ma il semplice date vecchio formato Unix.
Non ho ancora trovato il modo di farlo senza dover usare anche il perl, cosa che reputo abbastanza assurda.
Questo e’ l’unico modo che ho al momento per convertire una data in timestamp sotto SunOS senza lo GNU date:
Bisogna scaricare questo script in Perl: datetotimestamp.pl
ed eseguire per esempio il comando:
date | perl datetotimestamp.pl
Il problema di fondo con questo metodo e’ che la data da dargli in pasto deve essere del tipo: Fri Jul 27 13:01:56 CEST 2007
Oppure si modifica lo script perl e lo si adatta, ma non si possono perdere ore per una stupidata del genere.
Quando ho chiamato dei sistemisti Sun Solaris chiedendo a loro se avessero un rimedio meno invasivo, la risposta e’ stata:
ti abbiamo installato lo GNU date su un altro path…
NO COMMENT! GNU’s Not Unix (e si vede!)
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.


18:59 on October 20th, 2007
Il comando va formattato in modo seguente:
date –utc –date “2007-10-20″ +%s
notare il doppio meno di –utc e –date e non -utc e -date come sopra!
19:01 on October 20th, 2007
scusate, ma probabilmente i doppi meno vengono interpretati dal blog e diventano dei meno singoli… volevo solo far notare che se il comando non funziona è per questo motivo…
00:34 on October 25th, 2007
Ciao, vagando ti ho trovato.
ti lascio la soluzione per convertire da timestamp a data
# date -d @1000000042
Sun Sep 9 01:47:22 GMT 2001
funziona con le versioni recenti di date
è una funzione non documentata nel man della versione 5.97 - ubuntu 7.04
l’ho trovata a questo indirizzo
http://anton.lr2.com/archives/2006/04/06/convert-a-unix-epoch-timestamp-to-a-date-in-bash/
Difficile che Linux ti deluda :D
Ciao, Stef
Know is power, share the power ;)