Re: Convertion de format d'écriture de date
FrédéricBothamy a écrit : Solution sale à retravailler: for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8 Hop : for i in `seq 0 51`; do date --date="4 Jan 2005 +$i weeks"; done (ou on peut faire simplement cal 2005 pour avoir le calendrier complet pour 2005). Voilà une belle conclusion à ce fil de discussion :) -- Jonathan ILIAS, qui, en plus d'admirer la créativité de Frédéric et de Yves, a pris connaissance d'une commande bien pratique : "seq"
Re: Convertion de format d'écriture de date
* Yves Rutschle <[EMAIL PROTECTED]> [2004-11-30 11:26] : > On Tue, Nov 30, 2004 at 11:10:07AM +0100, Jonathan ILIAS wrote: > > Même si je peux m'en sortir manuellement, difficile de faire un script > > qui me sorte tous les mardi pour l'année 2005. > > Solution sale à retravailler: > for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8 Hop : for i in `seq 0 51`; do date --date="4 Jan 2005 +$i weeks"; done (ou on peut faire simplement cal 2005 pour avoir le calendrier complet pour 2005). Fred -- Comment poser les questions de manière intelligente ? http://www.gnurou.org/documents/smart-questions-fr.html Comment signaler efficacement un bug ? http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html
Re: Convertion de format d'écriture de date
Yves Rutschle a écrit : Solution sale à retravailler: for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8 Soit, il existe de nombreuses façons d'obenir une solution à un problème spécifique, moyennant a pire une légère intervention manuelle. L'objet de ma question initiale était de savoir s'il existait un outil "générique" permettant de faire des conversions de format d'écriture de date. Pour mes deux problèmes présentés précédemment, la solution aurait alors été assez simple. Si ça n'existe pas, je prendrai le temps d'entamer le développement d'un tel outil, avec le patrimoine de code que nous offre le logiciel libre, cela devrait se limiter à intégrer quelques bouts de code... Mais je ne voudrais pas réinventer la roue. PS : je ne voudrais pas paraître ingrat, merci tout de même à vous qui vous intéressez à mon problème :) -- Jonathan ILIAS
Re: Convertion de format d'écriture de date
On Tue, Nov 30, 2004 at 11:10:07AM +0100, Jonathan ILIAS wrote: > Même si je peux m'en sortir manuellement, difficile de faire un script > qui me sorte tous les mardi pour l'année 2005. Solution sale à retravailler: for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8 Y.
Re: Convertion de format d'écriture de date
FrédéricBothamy a écrit : Si, si, c'est dans la doc (c'est le dernier exemple donné dans le fichier .info) : To convert such an unwieldy number of seconds back to a more readable form, use a command like this: date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z" 2000-01-01 00:00:00 + Cependant : date -d '1970-01-01 1103929200 sec' +"%Y-%m-%d %T %z" 2004-12-24 23:00:00 +0100 Le bon nombre de secondes est plutôt : date -d '1970-01-01 1103932800 sec' +"%Y-%m-%d %T %z" 2004-12-25 00:00:00 +0100 Ah, en effet, j'avais mal lu la doc ;-) Du coup, j'ai approfondi un peu, et j'ai trouvé une piste pour mon premier problème (conversion des dates dans le fichier de bookmark de Mozilla) : info --node="Date input formats" --file=coreutils.info.gz En fait, je voulais obtenir la liste de tous les mardi d'une année. J'arrive actuellement la chose de façon relative à la date courante : $ date -d "1 Tuesday" mar nov 30 00:00:00 CET 2004 $ date -d "2 Tuesday" mar déc 7 00:00:00 CET 2004 Même si je peux m'en sortir manuellement, difficile de faire un script qui me sorte tous les mardi pour l'année 2005. Il y a peut-être une solution qui m'échappe encore... -- Jonathan ILIAS
Re: Convertion de format d'écriture de date
* Jonathan ILIAS <[EMAIL PROTECTED]> [2004-11-30 08:51] : > Yves Rutschle a écrit : > >Tu as mal lu la doc: > Si si. Enfin, en tout cas, ce n'est pas la solution que je cherche. Dans > la solution que tu proposes, je ne peux pas choisir le format de la date > d'entrée. > > Par exemple, j'aimerai passer de 1103929200 (nombre de secondes depuis > 1er janvier 1970) à 25/12/2004. Si, si, c'est dans la doc (c'est le dernier exemple donné dans le fichier .info) : To convert such an unwieldy number of seconds back to a more readable form, use a command like this: date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z" 2000-01-01 00:00:00 + Cependant : date -d '1970-01-01 1103929200 sec' +"%Y-%m-%d %T %z" 2004-12-24 23:00:00 +0100 Le bon nombre de secondes est plutôt : date -d '1970-01-01 1103932800 sec' +"%Y-%m-%d %T %z" 2004-12-25 00:00:00 +0100 Fred -- Comment poser les questions de manière intelligente ? http://www.gnurou.org/documents/smart-questions-fr.html Comment signaler efficacement un bug ? http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html
Re: Convertion de format d'écriture de date
Yves Rutschle a écrit : Tu as mal lu la doc: Si si. Enfin, en tout cas, ce n'est pas la solution que je cherche. Dans la solution que tu proposes, je ne peux pas choisir le format de la date d'entrée. Par exemple, j'aimerai passer de 1103929200 (nombre de secondes depuis 1er janvier 1970) à 25/12/2004. J'ai eu une idée, suite à ta réponse, mais date ne semble pas vouloir de cette syntaxe : $ date -d "1101205039+%s" "+%D" date: date invalide « 1101205039+%s » $ date -d "1101205039 +%s" "+%D" date: date invalide « 1101205039 +%s » Par exemple: @oban]:yves$ date -d "12/25/2004" +"%a" Sat Noël est un samedi! (Remarque inutile) Je dirai même plus : echo "Noël est un `LC_ALL=fr_FR date -d "12/25/2004" "+%A"`" -- Jonathan ILIAS
Re: Convertion de format d'écriture de date
On Mon, Nov 29, 2004 at 04:49:36PM +0100, Jonathan ILIAS wrote: > Je pensais utiliser la commande "date" mais, sauf à avoir mal lu la doc, > elle ne me permet pas de choisir : Tu as mal lu la doc: > - un format de date en entrée, pour interpréter la date que je lui donne option -d > - un format de date en sortie, pour m'afficher la date dans le format > qui m'intéresse. option +"..." Par exemple: @oban]:yves$ date -d "12/25/2004" +"%a" Sat Noël est un samedi! Y.
Convertion de format d'écriture de date
Bonjour, cela fait plusieurs fois que je rencontre le problème : j'ai besoin de convertir le format d'une date. Je pensais utiliser la commande "date" mais, sauf à avoir mal lu la doc, elle ne me permet pas de choisir : - un format de date en entrée, pour interpréter la date que je lui donne - un format de date en sortie, pour m'afficher la date dans le format qui m'intéresse. C'est le genre de truc très pratique dans l'écriture de scripts ou autres choses... J'imagine que ça doit exister mais je n'arrive pas à mettre la main là dessus. Any idea ? -- Jonathan ILIAS