Je cherche =E0 r=E9cup=E9rer la date de la veille sous la forme "%Y-%m-%d"
(formatage =E0 la "strftime") avec les commandes standard fournies avec
Solaris 8. Sous Linux, il y a "date -d yesterday '+%Y-%m-%d'" mais
l'option "-d" de "date" n'existe pas sous Solaris 8.
Pour l'instant j'ai :
gawk 'BEGIN { print strftime("%Y-%m-%d",
int(systime()/86400)*86400-7202) }'
# systime() =3D nombre de secondes depuis Epoch
# int(systime()/86400)*86400 =3D aujourd'hui =E0 01:00:00 ou 02:00:00
# int(systime()/86400)*86400-7202 =3D hier =E0 22:59:58 ou 23:59:58
Mais cela ne fonctionne qu'en Central European Time, et j'aimerai
quelque chose qui marche partout.
Le Fri, 31 Mar 2006 14:06:04 +0000 (UTC), Vincent Lefevre écrivit:
Ça ne fonctionne peut-être pas lorsque le changement de date se produit au moment de l'exécution du script. Je pense que si car les TZ en GMT ne gerent pas de DST
Je ne vois pas le rapport avec le DST.
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006
Le Fri, 31 Mar 2006 14:06:04 +0000 (UTC), Vincent Lefevre écrivit:
Ça ne fonctionne peut-être pas lorsque le changement de
date se produit au moment de l'exécution du script.
Je pense que si car les TZ en GMT ne gerent pas de DST
Je ne vois pas le rapport avec le DST.
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
asl@pomme ~ $ date -d yesterday
Thu Mar 30 16:08:43 CEST 2006
Le Fri, 31 Mar 2006 14:06:04 +0000 (UTC), Vincent Lefevre écrivit:
Ça ne fonctionne peut-être pas lorsque le changement de date se produit au moment de l'exécution du script. Je pense que si car les TZ en GMT ne gerent pas de DST
Je ne vois pas le rapport avec le DST.
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006
Le Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre écrivit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date: ~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006 Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date
de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ok. Je corrige, alors.
~ $ TZ=GMT date -d yesterday Thu Mar 30 15:40:41 GMT 2006
Le Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre écrivit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
asl@pomme ~ $ date -d yesterday
Thu Mar 30 16:08:43 CEST 2006
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date
de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ok. Je corrige, alors.
asl@pomme ~ $ TZ=GMT date -d yesterday
Thu Mar 30 15:40:41 GMT 2006
Le Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre écrivit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date: ~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006 Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date
de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ok. Je corrige, alors.
~ $ TZ=GMT date -d yesterday Thu Mar 30 15:40:41 GMT 2006
On Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre wrote:
Dans l'article , Arnaud Launay écrit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ca doit dependre de la version de GNU date alors.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas avec yesterday, car yesterday est un multiplicatif, il faut date -d '1 yesterday' or date -d '-1 day'.
Ensuite:
~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date Sun Oct 29 23:30:00 GMT 2006 ~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 24 * 3600)) /usr/gnu/bin/date Sun Oct 29 00:30:00 BST 2006 ~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date -d '-1 day' Sat Oct 28 23:30:00 BST 2006 ~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 25 * 3600)) /usr/gnu/bin/date Sat Oct 28 23:30:00 BST 2006
En l'occurrence, "-1 day", ca fait 25 heures.
-- Stephane
On Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre wrote:
Dans l'article <slrne2qe0d.bmh.asl@pomme.launay.org>,
Arnaud Launay <asl@launay.org> écrit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
asl@pomme ~ $ date -d yesterday
Thu Mar 30 16:08:43 CEST 2006
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date
de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ca doit dependre de la version de GNU date alors.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas
avec yesterday, car yesterday est un multiplicatif, il faut date
-d '1 yesterday' or date -d '-1 day'.
Ensuite:
~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date
Sun Oct 29 23:30:00 GMT 2006
~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 24 * 3600)) /usr/gnu/bin/date
Sun Oct 29 00:30:00 BST 2006
~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date -d '-1 day'
Sat Oct 28 23:30:00 BST 2006
~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 25 * 3600)) /usr/gnu/bin/date
Sat Oct 28 23:30:00 BST 2006
On Fri, 31 Mar 2006 14:56:20 +0000 (UTC), Vincent Lefevre wrote:
Dans l'article , Arnaud Launay écrit:
Tiens, dans les autres solutions, on peut aussi utiliser le gnu date:
~ $ date -d yesterday Thu Mar 30 16:08:43 CEST 2006
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ca doit dependre de la version de GNU date alors.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas avec yesterday, car yesterday est un multiplicatif, il faut date -d '1 yesterday' or date -d '-1 day'.
Ensuite:
~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date Sun Oct 29 23:30:00 GMT 2006 ~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 24 * 3600)) /usr/gnu/bin/date Sun Oct 29 00:30:00 BST 2006 ~$ LD_PRELOAD=./a.out TIME62164600 /usr/gnu/bin/date -d '-1 day' Sat Oct 28 23:30:00 BST 2006 ~$ LD_PRELOAD=./a.out TIME=$((1162164600 - 25 * 3600)) /usr/gnu/bin/date Sat Oct 28 23:30:00 BST 2006
En l'occurrence, "-1 day", ca fait 25 heures.
-- Stephane
Arnaud Launay
Le 31 Mar 2006 15:53:07 GMT, Stephane Chazelas écrivit:
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date de la veille (une journée pouvant faire 23 heures ou 25 heures). Ca doit dependre de la version de GNU date alors.
Probable.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas avec yesterday, car yesterday est un multiplicatif, il faut date -d '1 yesterday' or date -d '-1 day'.
~ $ date --version date (coreutils) 5.2.1
Ça marche aussi avec << date -d "1 day ago" >>
En l'occurrence, "-1 day", ca fait 25 heures.
Quelle idée aussi, d'utiliser spécifiquement des valeurs limites :)
Le 31 Mar 2006 15:53:07 GMT, Stephane Chazelas écrivit:
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date
de la veille (une journée pouvant faire 23 heures ou 25 heures).
Ca doit dependre de la version de GNU date alors.
Probable.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas
avec yesterday, car yesterday est un multiplicatif, il faut date
-d '1 yesterday' or date -d '-1 day'.
asl@pomme ~ $ date --version
date (coreutils) 5.2.1
Ça marche aussi avec << date -d "1 day ago" >>
En l'occurrence, "-1 day", ca fait 25 heures.
Quelle idée aussi, d'utiliser spécifiquement des valeurs limites :)
Le 31 Mar 2006 15:53:07 GMT, Stephane Chazelas écrivit:
Non: yesterday = -24 heures. Ça ne correspond pas forcément à la date de la veille (une journée pouvant faire 23 heures ou 25 heures). Ca doit dependre de la version de GNU date alors.
Probable.
Deja, celle a laquelle j'ai acces (sh-utils 1.16) ne marche pas avec yesterday, car yesterday est un multiplicatif, il faut date -d '1 yesterday' or date -d '-1 day'.
~ $ date --version date (coreutils) 5.2.1
Ça marche aussi avec << date -d "1 day ago" >>
En l'occurrence, "-1 day", ca fait 25 heures.
Quelle idée aussi, d'utiliser spécifiquement des valeurs limites :)