7
votes

Unix Shell Script pour obtenir la date il y a 30 minutes dans GMT

J'ai un script shell que je veux obtenir la date et l'heure il y a 30 minutes dans GMT.

J'ai cela fonctionnant bien pour les heures complètes, mais les heures partielles ne semblent pas fonctionner:

il y a 1 heure

TZ = GMT + 1 date +% y-% m-% d ""% h:% m:% s 2010-01-08 17:43:57

Il y a 2 heures

TZ = GMT + 2 Date de +% Y-% M-% D ""% h:% m:% s 2010-01-08 16:44:07

il y a 1/2 heure

TZ = GMT + .5 Date de +% Y-% M-% D ""% h:% m:% s 2010-01-08 18:44:38

J'ai essayé beaucoup de combinaisons de 0,5 1,5, aucune heure partielle ne semble fonctionner, ce qui est bizarre car il y a des fuseaux horaires de fusure non compensés d'une heure.

Toute suggestion?

ne peut pas utiliser Perl ou Ruby doit être une coque régulière ou un appel MySQL.


0 commentaires

3 Réponses :


17
votes

date--date = "- 30 minutes"


3 commentaires

Si vous êtes sur OS X, l'option équivalente est la suivante: date -u -v-30m


Merci, serait idéal si j'en avais un qui travaillait sur Linux Centos et OSX, mais je peux vivre avec 2 versions pour l'instant.


Ainsi que «-30 minutes», vous pouvez dire «il y a 30 minutes», qui correspond exactement à cette partie de votre question.



1
votes
 /usr/bin/env TZ='GMT' date -d '-30 minutes'
This is with the version of the date command that's part of the GNU coreutils. I don't know if it works for other versions of the date program.

0 commentaires

10
votes

Vous pouvez également faire cela: xxx


2 commentaires

Fonctionne sur Mac OS X et Ubuntu.


Ceci est une solution plus compatible - fonctionne aussi sur Alpine Linux