Problème format date

Bonjour,

Je n’arrive pas à formater ma date correctement dans un script. Je pense que c’est simple mais impossible de trouver la bonne syntaxe.

Voici le bout de code : La date est le 12 MARS 2018 !

DATESAVEFIN=date --date="12/03/2018" +%s
echo $DATESAVEFIN => 1543791600

date -d @1543791600 => lun. déc. 3 00:00:00 CET 2018

Voila, je n’arrive pas à retombé sur le 12 mars 2018 malgré les différents format appliqués à ma commande.

Merci de votre retour.

Bonjour

Si séparé par des caractères /
alors, d’abord le mois, puis le jour, et pour finir, l’année

michel@debg53sw:~$ date +%D
03/12/18
michel@debg53sw:~$ 
michel@debg53sw:~$ date --date="03/12/2018" +%s
1520809200
michel@debg53sw:~$ 

Ou alors, séparé par des caractères -
année, mois, jour

michel@debg53sw:~$ date --date="2018-03-12" +%s
1520809200
michel@debg53sw:~$ 
michel@debg53sw:~$ date -d @1520809200
lundi 12 mars 2018, 00:00:00 (UTC+0100)
michel@debg53sw:~$ 

Salut et merci de ta contribution.

La variable date arrive sous la forme 12/03/2018 ( 12 mars 2018). ddmmYY et non mmddYY

voila mon soucis.

Bonjour

J’ai un peu de mal à comprendre le problème, je ne vois pas d’où elle arrive et comment.

Il faudrait peut-être donner le contenu du script dans lequel cette date est générée
celui dans lequel elle “arrive”, dire à quoi il sert,
et décrire le contexte dans lequel il s’exécute :

Interpréteur de commandes utilisé,
compte utilisateur qui lance le script,
environnement dans lequel il est lancé,
notamment les variables de locale (Language etc…), Timezone…


Sinon, dans un script bash,
au pire, on pourrait faire ce qui suit :

michel@debg53sw:~$ maDate="12/03/2018"
michel@debg53sw:~$ dayMonth=${maDate%/*};maDate="${dayMonth#*/}/${dayMonth%/*}/${maDate##*/}"
michel@debg53sw:~$ echo $maDate
03/12/2018
michel@debg53sw:~$ 
michel@debg53sw:~$ DATESAVEFIN=$(date --date=$maDate +%s)
michel@debg53sw:~$ date -d@$DATESAVEFIN +'%A %e %B %Y'
lundi 12 mars 2018
michel@debg53sw:~$ 

pour afficher en mmddyy il faut utiliser +%D
https://www.systutorials.com/docs/linux/man/1-date/

root@debian:/# date +%D
03/13/18
root@debian:/# 

NB

root@debian:/# locale | grep TIME
LC_TIME="fr_FR.UTF-8"
root@debian:/#  date +%x
13/03/2018
root@debian:/# date +%c
mar. 13 mars 2018 08:48:55 CET
root@debian:/# 


Merci à vous,

j’avais mal lu ce que tu as écris, c’est bon pour moi.