Aller au contenu

Featured Replies

Posté(e)

Bonjour,

dans le cadre d'un script qui archive les fichiers du repertoire courant dans un repertoire qui doit porter en nom une date, j'ai besoin de récupérer la date d'hier.

Avec la date du jour, pas de soucis :

DS213> date +%F
2014-11-04
DS213>

Mais quand je veux récupérer la date d'hier, impossible, je n'ai pas la bonne synthaxe,

Pourtant quand je regarde les exemples sur internet, il ne me semble pas m'etre trompé.

Et pas de man installé sur le syno, du coup je n'ai pas d'exemple d'utilisation

DS213> date --date 'yesterday'
date: invalid date 'yesterday'

DS213> date --date
date: option '--date' requires an argument
BusyBox v1.16.1 (2014-05-29 11:39:14 CST) multi-call binary.

Usage: date [OPTIONS] [+FMT] [TIME]

Display time (using +FMT), or set time

Options:
[-s,--set] TIME Set time to TIME
-u,--utc Work in UTC (don't convert to local time)
-R,--rfc-2822 Output RFC-2822 compliant date string
-I[sPEC] Output ISO-8601 compliant date string
SPEC='date' (default) for date only,
'hours', 'minutes', or 'seconds' for date and
time to the indicated precision
-r,--reference FILE Display last modification time of FILE
-d,--date TIME Display TIME, not 'now'
-D FMT Use FMT for -d TIME conversion

Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]

DS213>

j'ai essayé avec '1 day ago', mais ca ne fonctionne pas non plus.

Si quelqu'un peut me mettre sur la voie..

merci

seb

Posté(e)

voici :

echo $((`date "+%s"` - 86400 )) | perl -e 'print localtime(<>) . "n";'

Modifié par Gaetan Cambier

Posté(e)

Tu as aussi:

echo `TZ=MET+24 date +"%d/%m/%Y %H:%M:%S"`
Posté(e)
  • Auteur

Merci messieurs.

J'ai tésté les 2,

Pour Gaetan, je n'ai pas perl d'installé, du coup ca ne fonctionne pas.

PourMike913, c'est pile poil ce qu'il me fallait, j'ai juste virer les '/' car je ne peux pas nommé un repertoire avec des '/'/

echo `TZ=MET+24 date +"%d-%m-%Y"`

Encore merci,

seb

Posté(e)

Toute façon, je pense que la manière de Mike reste plus rapide.

par contre, c'est bizarre, mais avec l'option de mike, l'heure est pas bonne

je ne sais pas vraiment pourquoi, mais faut plutot utiliser la commande suivante pour conserver l'heure correcte :

echo `TZ=MET+23 date  +"%d/%m/%Y %H:%M:%S"`

si quelqu'un a une explication sur le 23 et pas 24 pour que ca fonctionne ...

Modifié par Gaetan Cambier

Posté(e)

Autre approche:

/bin/date -D %s -d $(( $(/bin/date +%s) - 86400)) +"%d/%m/%Y %H:%M:%S"

pas besoin de perl

La date est calculée avec le timezone courant.

NB: J'ai mis le chemin explicite "/bin/date" au cas ou certains auraient bidouillé le PATH avec une autre commande "date" par défaut.

Posté(e)

Autre approche:

/bin/date -D %s -d $(( $(/bin/date +%s) - 86400)) +"%d/%m/%Y %H:%M:%S"
pas besoin de perl

La date est calculée avec le timezone courant.

NB: J'ai mis le chemin explicite "/bin/date" au cas ou certains auraient bidouillé le PATH avec une autre commande "date" par défaut.

En fait c'est a ça que j'avais voulu arriver mais sans succès :s

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.