J'ai ce qui suit dans un shell script. Comment puis-je soustraire une heure tout en conservant le formatage ?
DATE=`date "+%m/%d/%Y -%H:%M:%S"`
J'ai ce qui suit dans un shell script. Comment puis-je soustraire une heure tout en conservant le formatage ?
DATE=`date "+%m/%d/%Y -%H:%M:%S"`
I recieve -date : option illégale -- d utilisation : date [-u] mmddHHMM[[cc]yy][.SS] date [-u] [+format] date -a [-]sss[.fff]
J'ai trouvé - je le poste parce que peut-être vous connaissez un autre moyen de le faire sur une machine solaris ?
date -v-60M "+%m/%d/%Y -%H:%M:%S"
DATE=`date -v-60M "+%m/%d/%Y -%H:%M:%S"`
Si vous avez la version de bash 4.4+
vous pouvez utiliser l'impression de la date et l'arithmétique internes de bash :
printf "current date: %(%m/%d/%Y -%H:%M:%S)T\n"
printf "date - 60min: %(%m/%d/%Y -%H:%M:%S)T\n" $(( $(printf "%(%s)T") - 60 * 60 ))
Le site $(printf "%(%s)T")
imprime les secondes d'époque, le $(( epoch - 60*60 ))
est bash-aritmétique - soustrayant 1h en secondes. Imprimés :
current date: 04/20/2017 -18:14:31
date - 60min: 04/20/2017 -17:14:31
@tripleee et quelle date est "portable" ? Rappelez-vous qu'il y a des millions de machines BSD comme MacOS. Linux (Dieu merci) n'est pas le seul système d'exploitation de type Unix. De plus, la deuxième solution n'utilise pas du tout la date... donc...
La seule option pour date
spécifié dans POSIX es -u
. Il n'est peut-être pas encore totalement portable, mais c'est une base raisonnable. Je ne dis pas que vous devez trouver une solution, je signale simplement un fait qui pourrait surprendre les visiteurs qui essaient d'utiliser les informations auxquelles vous répondez.
Ahh j'utilise le shell script, ma formule est la suivante -DATE= date "+%m/%d/%Y -%H:%M:%S"
et à partir de DATE je veux soustraire 1 heure
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.