> Rappelez-vous, dimanche 2:46 GMT, UNIX aura un milliard de secondes
> (l'epoch). Cela fait passer les secondes de 9 à 10 chiffres lorsqu'elles
> sont représentées en nombre texte.
...
> Donc, sous certaines conditions, l'année exprimée à deux chiffres peut
> être mal interprétée et 2008/2009 (aka 08/09) comprises comme 2000 (aka
> 00).
A ce propos, j'ai eu des ``bugs du mois d'août'' dans des scripts shell
car je récupérais la date en faisans: smois=$(date +%m), pour ensuite
effectuer des opération arithmétique avec la variable $smois.
La solution à ce propos est:
$ smois=$(date +%1m)
voire:
$ adate=($(date +"%1d %1m %Y %1H %1M %1S"))
$ smois=${date[1]}
...
$ printf "%02d-%02d-%4d %02d:%02d:%02d\n" ${adate[@]}
... :-))
Comme je suis tjrs sous bash (v2;-) je me suis amusé:
---------------
felix@medium:~$ sdte=$(date -d "2001-9-9 03:46:39" +%s);echo ${#sdte}: $sdte
9: 999999999
felix@medium:~$ sdte=$(date -d "2001-9-9 03:46:40" +%s);echo ${#sdte}: $sdte
10: 1000000000
---------------
Alors j'essaie dans l'autre sens... Nota: je n'ai pas trouvé de moyen
simple, a priori d'effectuer l'opération inverse: secondes -> date+heure.
J'ai fait:
---------------
felix@medium:~$ date -d "1970-1-1 0:0:999999999"
dim sep 9 02:46:39 CEST 2001
felix@medium:~$ date -d "1970-1-1 0:0:999999999 UTC"
dim sep 9 04:46:39 CEST 2001
---------------
Alors là, je ne trouve pas 3:46 mais 2:46???, bien que:
---------------
Therefore TZ='Europe/Zurich' will be used.
Local time is now: Mon Sep 10 09:30:35 CEST 2001.
Universal Time is now: Mon Sep 10 07:30:35 UTC 2001.
---------------
Après m'être bien amusé, je vous laisse deux questions:
1: Existe-t-il un moyen ``standard'' d'effectuer l'opération sec->date?
2: Pourquoi je n'ai pas le même résultat avec ma méthode?
La réponse à le première contiendra probablement la réponse à la
deuxième:-P
A+!
--
Félix Hauri - <[EMAIL PROTECTED]> - http://www.f-hauri.ch
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.