coreutils GNU Contexte du système
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