Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
17 juillet 2010

coreutils GNU           Contexte du système


Format d'entrée de date

Format d'entrée de date

Syntaxe du format de date

Syntaxe générale de date

   une date est une chaîne, qui peut être vide, contenant plusieurs items séparés avec un espace blanc. Une date peut contenir:

        - date de calendrier
        - heure du jour
        - time zone
        - jour de la semaine
        - iems relatifs
        - nombres

   Quelques nombres peuvent être écris en mot:

        last vaut -1
        this vaut 0
        first, next valent 1
        third pour 3
        fourth pour 4
        fifth pour 5
        sixth pour 6
        seventh pour 7
        eighth pour 8
        ninth pour 9
        tenth pour 10
        eleventh pour 11
        twelfth pour 12

   Dans l'implémentation actuelle, seul l'Anglais est supporté pour les mots et abbréviations comme AM, DST, EST, first, january, sunday, tomorrow et year.

Date de calentrier et TimeZone

Une date de calendrier spécifie un jour de l'année. Elle est spécifiée différemment, si le mois est indiqué numériquement ou littéralement. Toutes ces chaînes spécifient la même date de calendrier:
1972-09-24
72-9-24
72-09-24
9/24/72
24 September 1972
24 Sept 72
24 Sep 72
Sep 24, 1972
24-sep-72
24sep72
L'année peut également être omise. Dans ce cas, la dernière année spécifiée est utilisée, sinon l'année courante. Exemple
9/24
sep 24

   pour les mois numérique, le format ISO 8601 YEAR-MONTH-DAY est permis. La construction MONTH/DAY/YEAR, populaire aux USA est accepté. Les mois peuvent être spécifiés par leur nom : 'January', 'February','March', 'April', 'May', 'June', 'July', 'August', 'September','October', 'November', 'December'. On peut utiliser leur abréviation (les 3 premières lettres).

Quand les mois sont spécifiés ainsi, la date de calendrier peut être spécifié comme suit
DAY MONTH YEAR
DAY MONTH
MONTH DAY YEAR
DAY-MONTH-YEAR
ou omettre l'année
MONTH DAY

Heure du jour

Quelques exemples:
20:02:00.000000
20:02
8:02pm
20:02-0500 # In EST (U.S. Eastern Standard Time).

   Plus généralement, le temps peut être donné en HOUR:MINUTE:SECOND, et optionnellement suivi par un '.' ou ',' et une fraction contenant un ou plusieurs chiffres. SECOND peut être omis. Si le temps est suivi par 'am' ou 'pm', HOUR est restreint entre 1 et 12.

  L'heure peut être suivie par un time zone exprimé par SHHMM, où S vaut '+' ou '-', HH Est le nombre d'heures de la zone, et MM est le nombre de minutes de la zone (peut être omis).

Jour de la semaine

   La mention du jour de la semaine va renvoyer la date pour atteindre ce jours de la semaine dans le future. Les jours de la semaine peuvent être écris : 'Sunday', 'Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'. Leur abréviation peut être utilisé (3 premières lettres). Un nombre peut précéder le jour de la semaine pour spécifier un jour antérieur, comme third monday. Dans ce contexte, 'last DAY' ou 'next DAY' sont aussi acceptable.

Items relatifs

Quelques exemples:
1 year
1 year ago
3 years
2 days

   il est possible d'utiliser 'fortnight' pour 14 jours, week pour 7 jours, day pour 24 heures, hour pour 60 minutes, minute ou min pour 60 secondes et second ou sec. Un suffixe 's' est accepté et ignoré. L'unité de temps peut être précédée par un multiplicateur, un nombre signé. pour spécifié un temps antérieur, ajouter ago.

  Ainsi tomorrow est équivalent à day et yesterday est équivalent à day ago. Les chaînes now et today correspondent à aucun déplacement de temps. Ils peuvent être utilisés par exemple: "10:00 today". La chaîne this à la même signification, par exemple: this thursday.

Secondes depuis the Epoch

   Si vous précédez un nombre avec '@', il représente un compteur de seconde interne. the epoch correspond au 1970-01-01 00:00:00 UTC. Il est possible de spécifier des valeurs négatives. Les systèmes 32-bits peuvent représenter le temps de 1901-12-13 20:45:52 à 2038-01-19 03:14:07 UTC. Les systèmes plus modernes utilise un compteur 64-bits.

Spécifier les règles de TimeZone

   Normalement les dates sont interprétées en utilisant les règles de time zone courant, qui sont spécifiées par la variable d'environnement TZ ou par le systéme par défaut si TZ n'est pas définie.

exemple: quelle heure est-il à New York quand il est 6:30 à Paris le 31 octobre 2004, en utilisant une date commençant par TZ="Europe/Paris":
export TZ="America/New_York"
date --date='TZ="Europe/Paris" 2004-10-31 06:30'
Sun Oct 31 01:30:00 EDT 2004