SHELL Transformer timestamp en date

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 20 avril 2007 à 11:52
prince_ganesh Messages postés 1 Date d'inscription jeudi 19 janvier 2012 Statut Membre Dernière intervention 19 janvier 2012 - 19 janv. 2012 à 15:31
Bonjour,

Est-il possible de transformer un timestamp en date en shell ?

Apparemment non ?

Merci !

14 réponses

prince_ganesh Messages postés 1 Date d'inscription jeudi 19 janvier 2012 Statut Membre Dernière intervention 19 janvier 2012 3
19 janv. 2012 à 15:31
date -d @<timestamp>

Par exemple:

host:# date -d @1320310698.194
jeudi 3 novembre 2011, 09:58:18 (UTC+0100)
3
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 avril 2007 à 13:24
Salut,

Comme disait la SNCF dans les années 80, "si c'est possible" :
 date -d "1970-01-01 UTC + 1164128484 seconds"
Tu peux changer le temps universel (UTC) par (CET) si besoin était ;-))
2
Dangereux comme commande ca !

date 200114362005 => je vais seter la date a cette valeur

extrait du man =>
....
2. To set the date and time, enter: date 0217142590
....
1
Salut,

en fait jai reglé le probleme plus facilement que prévus !
EN perl DEPUIS un shell, ca nous donnes :

# TimeStamp vers Date
# perl -e "print scalar(localtime(1173279767))"

et

# Date vers TimeStamp
perl -e "use POSIX ; print (mktime(10,45,11,31,4,107));"



plus d'information sur les valeurs necessaire au mktime
==>

# mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
#
# The month (mon), weekday (wday), and yearday (yday) begin at zero.
# The year (year) is given in years since 1900.
# Sunday is 0, not 1;
# January 1st is 0, not 1.
#
# I.e. January is 0, not 1;
# I.e. The year 1995 is 95; the year 2001 is 101.
# I.e. Calendar time for December 12, 1995, at 10:30 am : mktime( 0, 30, 10, 12, 11, 95 );
#
# Greenwich Mean Time (GMT)
# Daylight saving Time (DST)
# Coordinated Universal Time (CUT)
##################################




Voilou, j'suis content, j'affiche tous mes graphs a la date desiré
Me suis fait une petite interface simple en html qui pointe
vers un CGI (en faite en ksh) qui recupere les valeurs, les
format ent correctement grace a la commande perl mktime
et je graph le tout avec rddtool. En suis bien sur un affiche
simple des images <img src=....


Merci quand meme pour les réponses
+
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
20 avril 2007 à 14:01
Merci

:-))
0
Hug !

Et l'inversse ??

d'une date genre 2005-20-01 vers un timestamp
le tout toujours en shell (sh, ksh... au choix)

Thks
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
25 mai 2007 à 15:54
Salut,

man date
date -d 2005-20-01 +"%s"
;-))
0
Merci pour la reponse, mais pour etre exact ca serait
(dans le ca de local francais) :

date -d 2005-10-20 +"%s
et non
date -d 2005-20-01 +"%s


et cette commande ne fonctionne PAS sur unix (Aix)
(sur linux, pas de probleme)
Pour la simple et bonne raison qu'il n'y a pas de flag -D
d'ou ma question.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 mai 2007 à 11:14
et cette commande ne fonctionne PAS sur unix (Aix)
Il eût fallu pour cela le signaler, n'étant point devin malheureusement, et malgré tous mes efforts pour changer cette situation...

;-DDD
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 mai 2007 à 12:46
Charger et compiler GNU date pour avoir les commandes avec options linux sur n'importe quel Unix:

http://www.gnu.org/software/coreutils/
0
et cette commande ne fonctionne PAS sur unix (Aix)
Il eût fallu pour cela le signaler, n'étant point devin malheureusement, et malgré tous mes efforts pour changer cette situation...

;-DDD


Tant pis, merci quand meme.


Charger et compiler quoi que ce soit sur une machine de prod n'est Hélas pas possible ;)

Je vais donner un appercus de la config ca sera plus simple :

Machine de production (pas de compilateur dessus)
Pas d'installation de logiciel possible dessus (c'est de la prod)
Aix 5.3 TL4 SP0


Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 mai 2007 à 13:43
En regardant le "man date" d'AIX, peux-tu essayer ça s'il te plaît :
date  200114362005; date +"%s"
;-))
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 mai 2007 à 14:50
Oui c'est sûr, mais tu voulais une solution, en voilà une, après c'est à toi d'ajuster en fonction de tes besoins.

Et si tu faisais ça dans un environnement fils ?
(date  200114362005; date +"%s")
;-))
0
Hélas po possible.

Par contre, y'a d'autre solution sans passer par la commande DATE
exemple en perl :

#!/usr/bin/perl
use POSIX;

$sec = 0;
$min = 0;
$hour = 0;
$mday = 01;
$mon = 10;
$year = 105;
$wday = ?;
$yday = ?;
$timestamp = mktime($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,-1);
print ($timestamp);

ca ca marche plustot bien,
je sais qu'il existe aussi une commande sous php assez simple qui permet de passer tres simplement d'un timestanmp a une date et inverssement.

Le probleme c'est qu'en php... j'y connais rien
Ca vas se finir en cgi avec du perl cette histoire :)


Je sais pas trop si vous connaisser RRDTOOL
c'est un outils qui permet de generer des graphs (pour des stats)
J'affiche deja des stats sur le cpu, reseau et autre pour
1jour, 1semaine, 1mois, 1 année
Apres j'aurais bien voulu rajouter une petite page en
html ou php voir cgi qui permet via un calendrier de choisir
le jour ou l'on veux voir les stats.

d'ou ma question, date vers timestamp.
Avec le script perl la, je peux assez facilement faire un petit cgi
avec un menu deroulant pour laisser choisir la date, le mois, etc
par contre... niveau fin de mois... 29 30 ou 31
ca, je vois pas trop comment faire.
J'ai trouvé un petit script en php de calendrier qui gere justement
tout ca et me sort un jole a href=tutu.cgi?01202005

d'ou ma question initial pour convertir une date en timestamp
:)
0
Yup,

==>Charger et compiler GNU date pour avoir les commandes avec options linux sur n'importe quel Unix:
http://www.gnu.org/software/coreutils/


J'ai beau cherché, je n'ais pas reussi a trouver les sources de 'GNU DATE'
aurais tu un lien pas hazard ?
merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
29 mai 2007 à 16:22
Dans le paquet shellutils peut être...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 mai 2007 à 13:48
C'est dans shellutils

Previously these utilities were offered as three individual sets of GNU utilities, Fileutils, Shellutils, and Textutils. Those three have been combined into a single set of utilities called Coreutils.
0