Le type Date!

Note

Les mots nommant les types représentant le temps en anglais et en Red n’ont pas toujours d'équivalent strict en français. On a choisi ici de traduire:

  • "time" par "horaire" (partie d’une valeur de type date! incluant heures, minutes et secondes) pour le différencier de "hour" (l’heure uniquement)

  • "zone" par "zone" (zone géographique) pour le différencier de "timezone" traduit par "fuseau horaire"; ce dernier étant en fait l’association d’un horaire et de la zone dans laquelle il est exprimé.

1. Résumé

Les valeurs de type date! représentent des dates calendaires, selon le calendrier Grégorien. Une valeur de type date peut aussi optionnellement contenir une information d’horaire et de fuseau horaire. L’horaire dans les dates est au format 24 heures (incluant l’information optionnelle de fuseau horaire). Les dates en Red offrent aussi un support étendu pour les formats d’entrée ISO 8601.

Note
  • date! utilise un calendrier grégorien proleptique, qui étend son usage antérieurement à l’an 1582. La prudence est recommandée lorsqu’on essaie de représenter des dates historiques, pré-grégoriennes par des valeurs de type date!.

  • Les dates prises en charge vont du 1/Jan/-16384 au 31/Dec/16383, avec bouclage lorsque des opérations mathématiques produisent un débordement. En entrée, l’intervalle est réduit de 1/Jan/-9999 à 31/Dec/9999 pour des raisons pratiques.

2. Création

Les valeurs de type date! peuvent être créées à l’aide de la syntaxe littérale, ou à l’exécution par le constructeur make ou par conversion avec to.

2.1. Syntaxe littérale

De nombreux formats littéraux différents sont supportés, incluant tous les formats de date de Rebol et la plupart des standards de date ISO.

<date>/<time>
<date>/<time><zone>
<date>T<time>
<date>T<time>Z
<date>T<time><zone>

formats de <date>:
    <yyyy><sep><mmm><sep><dd>
    <dd><sep><mmm><sep><yyyy>
    <dd><sep><mmm><sep><yy>

formats de <date> supplémentaires lorsque la date est suivie de T:
    <yyyy><mm><dd>
    <yyyy>-W<ww>
    <yyyy>-W<ww>-<d>
    <yyyy>-<ddd>

formats de <mmm> (mois):
    <m>
    <mon>
    <month>

formats de <time>:
    <hour>:<min>:<sec>
    <hour>:<min>:<sec><zone>
    <hhmmss>
    <hhmmss><zone>
    <hhmmss>.<dec>
    <hhmmss>.<dec><zone>
    <hhmm>
    <hhmm><zone>

formats de <zone> (fuseau horaire):
    <sign><hour>
    <sign><hour>:<min15>
    <sign><hhmm>

formats de <sec> (secondes):
    <ss>
    <ss>.<dec>

<sep>    : `-` ou `/`
<yyyy>   : 3 ou 4 chiffres représentant l'année (4 chiffres pour les dates ISO)
<yy>     : 2 chiffres représentant l'année relativement à l'an 2000
<m>      : 1 ou 2 chiffres représentant le mois
<mm>     : 2 chiffres représentant le mois
<mon>	 : 3 lettres representant le début du mois
<month>  : nom complet du mois
<d>      : un chiffre représentant le jour de la semaine (1 à 7)
<dd>     : 1 ou 2 chiffres représentant le jour du mois
<ddd>    : 3 chiffres représentant le jour de l'année
<ww>     : 2 chiffres représentant la semaine de l'année
<time>   : une valeur de type time!
<hour>   : 1 ou 2 chiffres représentant les heures
<min>    : 1 ou 2 chiffres représentant les minutes
<ss>     : 1 ou 2 chiffres représentant les secondes
<dec>    : décimales pour les secondes
<sign>   : caractère `+` ou `-` (ne peut être omis)
<min15>  : comme <min> mais arrondi à un multiple de 15.
<hhmm>   : 4 chiffres pour les heures et les minutes (sans séparateur)
<hhmmss> : 6 chiffres pour les heures, les minutes et les secondes (sans séparateur)

De nombreux formats d’entrée différents pour les dates littérales sont acceptés. Les valeurs hors limites (dépassant les nombres de chiffres spécifiés ou au-delà de la norme d’un champ) produiront une erreur syntaxique. Lors de la sérialisation (par exemple pour l’affichage), seulement les formats canoniques suivants sont utilisés:

<dd>-<mon>-<yyyy>
<dd>-<mon>-<yyyy>/<hour>:<min>:<sec>
<dd>-<mon>-<yyyy>/<hour>:<min>:<sec><sign><hour>:<min15>

Lorsque les champs d’horaire et/ou de fuseau horaire sont indéterminés, ils sont omis. Dans les dates négatives, le séparateur / est utilisé au lieu de - pour une meilleure lisibilité.

Note
  • Quand un mois est spécifié par des lettres, le mois est exprimé par son nom en anglais, et n’est pas sensible à la casse.

  • Quand une année est spécifiée par seulement 2 chiffres (yy): si elle est inférieure à 50, elle est interprétée comme 20yy, sinon elle est interprétée comme 19yy.

Exemples de formats d’entrée valides pour des dates:

1999-10-5
1999/10/5
5-10-1999
5/10/1999
5-October-1999
1999-9-11
11-9-1999
5/sep/2012
5-SEPTEMBER-2012

02/03/04
02/03/71

5/9/2012/6:0
5/9/2012/6:00
5/9/2012/6:00+8
5/9/2012/6:0+0430
4/Apr/2000/6:00+8:00
1999-10-2/2:00-4:30
1/1/1990/12:20:25-6

2017-07-07T08:22:23+00:00
2017-07-07T08:22:23Z
20170707T082223Z
20170707T0822Z
20170707T082223+0530

2017-W01
2017-W23-5
2017-W23-5T10:50Z
2017-001
2017-153T10:50:00-4:00

2.2. Création durant l’exécution

make date! [<day> <month> <year>]
make date! [<year> <month> <day>]
make date! [<day> <month> <year> <time>]
make date! [<day> <month> <year> <time> <zone>]
make date! [<day> <month> <year> <hour> <minute> <second>]
make date! [<day> <month> <year> <hour> <minute> <second> <zone>]

<year>   : valeur integer!
<month>  : valeur integer!
<day>    : valeur integer!
<time>   : valeur time!
<zone>   : valeur integer!, time! ou pair!
<hour>   : valeur integer!
<minute> : valeur integer!
<second> : valeur integer!
Note
  • Les valeurs d’arguments hors limites provoqueront une erreur. Pour un résultat normalisé, utilisez l’action to plutôt que make.

  • les champs year et day sont interchangeables, mais seulement pour les faibles valeurs d’année.

Lorsqu’on utilise make, l’année peut être utilisée en première position seulement si sa valeur est >= 100.

Lorsqu’on utilise to, la première position peut être utilisée pour l’année seulement si sa valeur est >= 100 et sa valeur est plus grande que celle du troisième champ.

Lorsque cette règle n’est pas satisfaite, le troisième champ est considéré comme étant l’année.

Les années négatives devraient toujours être spécifiées en troisième position.

Exemples

make date! [1978 2 3]
== 3-Feb-1978

make date! [1978 2 3 5:0:0 8]
== 3-Feb-1978/5:00:00+08:00

make date! [1978 2 3 5:0:0]
== 3-Feb-1978/5:00:00

make date! [1978 2 3 5 20 30]
== 3-Feb-1978/5:20:30

make date! [1978 2 3 5 20 30 -4]
== 3-Feb-1978/5:20:30-4:00


make date! [100 12 31]
== 31-Dec-0100

; 32 n'est pas un jour valide
make date! [100 12 32]
*** Script Error: cannot MAKE/TO date! from: [100 12 32]
*** Where: make

; Le premier champ est < 100, donc n'est pas considéré comme une année
make date! [99 12 31]
*** Script Error: cannot MAKE/TO date! from: [99 12 31]
*** Where: make
  • Utilisation de la conversion avec to (voir Heure Unix)

to-integer <date>
to-date <epoch>

<date>  : une valeur de type date!
<epoch> : une valeur entière représentant une heure Unix

3. Les accesseurs par chemin

Les accesseurs par chemin offrent un moyen pratique d’obtenir et de fixer la valeur des champs d’une date!.

3.1. /date

Syntaxe

<date>/date
<date>/date: <date2>

<date>  : un mot ou un chemin représentant une valeur de type `date!`
<date2> : une valeur de type `date!`

Description

Obtient ou fixe le champ date d’une date (à l’exclusion de l’horaire et de la zone). Les dates sont renvoyées comme des valeurs de type date!.

Exemples

d:  now
== 10-Jul-2017/22:46:22-06:00
d/date
== 10-Jul-2017

d/date: 15/09/2017
== 15-Sep-2017/22:46:22-06:00

3.2. /year

Syntaxe

<date>/year
<date>/year: <year>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<year> : une valeur de type `integer!`

Description

Obtient ou fixe le champ année d’une date. Les années sout renvoyées sous forme d’entiers. Les arguments hors limites résulteront en une date normalisée.

Exemples

d:  now
== 10-Jul-2017/22:46:22-06:00
d/year: 16383
== 16383
d
== 10-Jul-16383/22:46:22-06:00
d/year: 16384
== 16384
d
== 10/Jul/-16384/22:46:22-06:00     ; noter le bouclage au dépassement de l'année 16384
d/year: 32767
== 32767
d
== 10/Jul/-1/22:46:22-06:00
d/year: 32768
== 32768
d
== 10-Jul-0000/22:46:22-06:00

3.3. /month

Syntaxe

<date>/month
<date>/month: <month>

<date>  : un mot ou un chemin représentant une valeur de type `date!`
<month> : une valeur de type `integer!`

Description

Obtient ou fixe le champ mois d’une date. Les mois sout renvoyés sous forme d’entiers. Les arguments hors limites résulteront en une date normalisée.

Exemples

d: now
== 10-Jul-2017/22:48:31-06:00
d/month: 12
== 12
d
== 10-Dec-2017/22:48:31-06:00
d/month: 13
== 13
d
== 10-Jan-2018/22:48:31-06:00   ; Noter le bouclage à l'année suivante
d/month
== 1                            ; Le mois est maintenant normalisé

3.4. /day

Syntaxe

<date>/day
<date>/day: <day>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<day>  : une valeur de type `integer!`

Description

Obtient ou fixe le champ jour d’une date. Les jours sout renvoyés sous forme d’entiers. Les arguments hors limites résulteront en une date normalisée.

Exemples

 d: 1-jan-2017
== 1-Jan-2017
d/day: 32
== 32
d
== 1-Feb-2017
d/day: 0         ; Noter comment fonctionne le zéro, pour des calculs corrects sur les dates.
== 0
d
== 31-Jan-2017

3.5. /time

Syntaxe

<date>/time
<date>/time: <time>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<time> : une valeur de type time! ou none!

Description

Obtient ou fixe le champ horaire d’une date. Les horaires sont renvoyées sous forme de valeurs de type time!, ou none! si l’horaire n’est pas déterminé, ou a été réinitialisé (voir ci-dessous). Les arguments hors limites résulteront en une date normalisée.

Si l’horaire a la valeur none!, les champs d’horaire et de zone sont mis à zéro et ne seront pas montrés par la suite.

Exemples

d: now
== 10-Jul-2017/23:18:54-06:00
d/time: 1:2:3
== 1:02:03
d
== 10-Jul-2017/1:02:03-06:00
d/time: none
== 10-Jul-2017

3.6. /hour

Syntaxe

<date>/hour
<date>/hour: <hour>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<hour> : une valeur de type `integer!`

Description

Obtient ou fixe le champ heure d’une date. Les heures sont renvoyées sous forme de valeurs entières entre 0 et 23. Les arguments hors limites résulteront en une date normalisée.

Exemples

d: now
== 10-Jul-2017/23:19:40-06:00
d/hour: 0
== 0
d
== 10-Jul-2017/0:19:40-06:00
d/hour: 24
== 24
d
== 11-Jul-2017/0:19:40-06:00

3.7. /minute

Syntaxe

<date>/minute
<date>/minute: <minute>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<minute> : une valeur de type `integer!`

Description

Obtient ou fixe le champ minutes d’une date. Les minutes sont renvoyées sous forme de valeurs entières entre 0 et 59. Les arguments hors limites résulteront en une date normalisée.

Exemples

== 10-Jul-2017/23:20:25-06:00
d/minute: 0
== 0
d
== 10-Jul-2017/23:00:25-06:00
d/minute: 60
== 60
d
== 11-Jul-2017/0:00:25-06:00

3.8. /second

Syntaxe

<date>/second
<date>/second: <second>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<second> : une valeur de type `integer!` ou float!

Description

Obtient ou fixe le champ secondes d’une date. Les secondes sont renvoyées sous forme de valeurs integer! ou float! entre 0 et 59. Les arguments hors limites résulteront en une date normalisée.

Exemples

d: now
== 10-Jul-2017/23:21:15-06:00
d/second: 0
== 0
d
== 10-Jul-2017/23:21:00-06:00
d/second: -1
== -1
d
== 10-Jul-2017/23:20:59-06:00
d/second: 60
== 60
d
== 10-Jul-2017/23:21:00-06:00

3.9. /zone

Syntaxe

<date>/zone
<date>/zone: <zone>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<zone> : une valeur de type time! ou integer!

Description

Obtient ou fixe le champ zone d’une date. Les zones sont renvoyées sous forme de valeurs de type time! entre -16:00 et +15:00. Fixer la zone avec /zone modifiera uniquement ce champ, la date restant inchangée. Les arguments hors limites résulteront en une date normalisée.

Lorsqu’un argument integer! est assigné à la zone, cet argument représente les heures, tandis que les minutes sont fixées à 0.

La granularité pour les minutes d’une zone est de 15, les valeurs non conformes seront arrondies au multiple inférieur de 15 minutes le plus proche.

Exemples

d: 1/3/2017/5:30:0
d/zone: 8
== 1-Mar-2017/5:30:00+08:00

d/zone: -4:00
== 1-Mar-2017/5:30:00-04:00

3.10. /timezone

Syntaxe

<date>/timezone
<date>/timezone: <timezone>

<date>     : un mot ou un chemin représentant une valeur de type `date!`
<timezone> : une valeur de type `integer!` ou time!

Description

Obtient ou fixe le champ fuseau horaire d’une date. Les fuseaux horaires sont renvoyés sous forme de valeurs de type time! entre -16:00 et +15:00. Fixer le fuseau horaire avec /timezone modifiera à la fois l’heure et la zone, la nouvelle heure restant équivalente à l’ancienne dans la nouvelle zone. Les arguments hors limites résulteront en une date normalisée.

Lorsqu’un argument integer! est assigné au fuseau horaire, cet argument représente les heures, tandis que les minutes sont fixées à 0.

La granularité pour les minutes d’un fuseau horaire est de 15, les valeurs non conformes seront arrondies au multiple inférieur de 15 minutes le plus proche.

Exemples

d: 1/3/2017/5:30:0
d/timezone: 8
== 1-Mar-2017/13:30:00+08:00

d/timezone: -4:00
== 1-Mar-2017/1:30:00-04:00
Note
  • Mettre /timezone à 0 mettra l’heure au format UTC.

3.11. /yearday

Syntaxe

<date>/yearday
<date>/yearday: <day>

<date>    : un mot ou un chemin représentant une valeur de type `date!`
<yearday> : une valeur de type `integer!`

Description

Obtient le jour de l’année pour une date donnée, commençant à 1 pour le 1er janvier. Les jours sont renvoyés sous forme d’entiers. Lorsque ce format est utilisé pour fixer le jour de l’année, la date est recalculée pour correspondre à ce jour-là. Les arguments hors limites résulteront en une date normalisée.

Note:

  • un alias /julian pour /yearday est aussi disponible, pour la compatibilité avec Rebol.

Exemples

d: 1-jan-2017
== 1-Jan-2017
d/yearday
== 1
d: 31-dec-2017
== 31-Dec-2017
d/yearday
== 365
d: 31-dec-2020
== 31-Dec-2020
d/yearday
== 366                  ; année bissextile

d: 31-dec-2017
== 31-Dec-2017
d/yearday: 366
== 366
d
== 1-Jan-2018

3.12. /weekday

Syntaxe

<date>/weekday
<date>/weekday: <day>

<date>    : un mot ou un chemin représentant une valeur de type `date!`
<weekday> : une valeur de type `integer!`

Description

Obtient le numéro du jour de la semaine, allant de 1 pour lundi à 7 pour dimanche. Lorsque ce format est utilisé pour fixer le jour de la semaine, la date est recalculée pour correspondre à ce jour-là dans la semaine courante. Les arguments hors limites résulteront en une date normalisée.

Exemples

d: now
== 10-Jul-2017/23:25:35-06:00
d/weekday
== 1
d/weekday: 2
== 2
d
== 11-Jul-2017/23:25:35-06:00
d/weekday: 7
== 7
d
== 16-Jul-2017/23:25:35-06:00
d/weekday: 8
== 8
d
== 17-Jul-2017/23:25:35-06:00

3.13. /week

Syntaxe

<date>/week
<date>/week: <day>

<date> : un mot ou un chemin représentant une valeur de type `date!`
<week> : une valeur de type `integer!`

Description

Obtient le numéro de la semaine en utilisant une définition particulière pour la semaine (les semaines commencent le dimanche, la première semaine commence le 1er janvier), qui va de 1 pour la première semaine de l’année, à 53. Lorsque ce format est utilisé pour fixer le numéro de la semaine, la date est recalculée pour correspondre au premier jour de cette semaine-là (un dimanche). Les arguments hors limites résulteront en une date normalisée.

Note
  • La définition particulière pour la semaine fait que la première et la dernière semaines de l’année peuvent être des semaines partielles, ayant de 1 à 7 jours. Pour des calculs corrects de semaines couvrant plusieurs années, utilisez l’accesseur /isoweek.

Exemples

d: now
== 10-Jul-2017/23:28:07-06:00
d/week
== 28
d/week: 29
== 29
d
== 16-Jul-2017/23:28:07-06:00
d/week: 52
== 52
d
== 24-Dec-2017/23:28:07-06:00
d/week: 53
== 53
d
== 31-Dec-2017/23:28:07-06:00
d/week: 54
== 54
d
== 7-Jan-2018/23:28:07-06:00

3.14. /isoweek

Syntaxe

<date>/isoweek
<date>/isoweek: <day>

<date>    : un mot ou un chemin représentant une valeur de type `date!`
<isoweek> : une valeur de type `integer!`

Description

Obtient le numéro de la semaine en utilisant la définition ISO 8601 pour la semaine, allant de 1 pour la première semaine de l’année, à 52 (ou 53 pour certaines années). Lorsque ce format est utilisé pour fixer le numéro de la semaine, la date est recalculée pour correspondre au premier jour de cette semaine-là (un lundi). Les arguments hors limites résulteront en une date normalisée.

Exemples

d: now
== 10-Jul-2017/23:29:13-06:00
d/isoweek
== 28
d/isoweek: 29
== 29
d
== 17-Jul-2017/23:29:13-06:00
d/isoweek: 52
== 52
d
== 25-Dec-2017/23:29:13-06:00
d/isoweek: 53
== 53
d
== 1-Jan-2018/23:29:13-06:00

3.15. Les accesseurs ordinaux

Outre l’utilisation de mots pour accéder aux champs d’une date, il est aussi possible d’utiliser un index entier dans des expressions de chemin:

<date>/<index>

<date>  : un mot ou un chemin représentant une valeur de type `date!`
<index> : une valeur de type `integer!` faisant référence à un champ de la date.

Un tel accesseur ordinal peut être utilisé aussi bien pour obtenir ou pour fixer des champs. La table suivante donne les noms des champs équivalents

Index Name

1

date

2

year

3

month

4

day

5

zone

6

time

7

hour

8

minute

9

second

10

weekday

11

yearday

12

timezone

13

week

14

isoweek

3.16. Accès aux champs de date en utilisant pick

Il est possible d’accéder aux champs d’une date sans utiliser de chemin, ce qui peut être plus pratique dans certains cas. Pour cela on peut utiliser pick sur les dates.

Syntaxe

pick <date> <field>

<date>  : une valeur de type `date!`
<field> : une valeur de type `integer!`

L’argument entier représente l’accesseur ordinal pour les dates. Voir la table "accesseurs ordinaux" ci-dessus.

Exemples

d: now
== 10-Jul-2017/23:35:01-06:00
names: system/catalog/accessors/date!
repeat i 14 [print [pad i 4 pad names/:i 10 pick d i]]
1    date       11-Jul-2017
2    year       2017
3    month      7
4    day        11
5    zone       8:00:00
6    time       21:43:52
7    hour       21
8    minute     43
9    second     52.0
10   weekday    2
11   yearday    192
12   timezone   8:00:00
13   week       28
14   isoweek    28

4. Conversions

4.1. Heure Unix

Les dates peuvent être converties depuis/vers une Heure Unix en utilisant l’action to.

Syntaxe

to-integer <date>
to-date <epoch>

<date>  : une valeur de type date!
<epoch> : une valeur entière représentant une heure Unix

Les heures Unix sont exprimées au format UTC. Si la date donnée en argument n’est pas en UTC, elle sera convertie en interne avant d'être convertie en heure Unix.

d: 8-Jul-2017/17:49:27+08:00
to-integer d
== 1499507367

to-integer 8-Jul-2017/9:49:27
== 1499507367

to-date to-integer d
== 8-Jul-2017/9:49:27

Notez que le temps Unix n’est pas défini au-delà de l’année 2038.

4.2. Date à partir d’un bloc

Syntaxe

to date! <spec>

<spec> : un bloc de valeurs pour les champs de date

Le bloc passé en argument sera converti en une valeur de type date! suivant la même syntaxe que pour make (voir Création durant l’exécution). Les arguments hors limites résulteront en une date normalisée. Pour une conversion stricte à partir d’un bloc, qui produira une erreur au lieu d’une normalisation, utilisez make.

5. Comparaisons

Tous les comparateurs peuvent être appliqués aux dates: =, ==, <>, >, <, >=, <=, =?. De plus, min, et max sont aussi supportés.

Exemples

3-Jul-2017/9:41:40+2:00 = 3-Jul-2017/5:41:40-2:00
== true

10/10/2017 < 1/1/2017
== false

max 10/10/2017 1/1/2017
== 10-Oct-2017

1/1/1980 =? 1-JAN-1980
== true

sort [1/1/2017 5/10/1999 3-Jul-2017/5:41:40-2:00 1/1/1950 1/1/1980/2:2:2]
== [1-Jan-1950 1-Jan-1980/2:02:02 5-Oct-1999 1-Jan-2017 3-Jul-2017/5:41:40-02:00]

6. Arithmétique

Les opérations supportées sur les dates comprennent:

  • addition ou soustraction de valeurs de n’importe quel champ de la date: le résultat est normalisé.

  • addition ou soustraction d’une valeur entière à une valeur date: l’entier est interprété comme un nombre de jours.

  • addition ou soustraction d’une valeur horaire à une valeur date: l’horaire sera ajouté à / soustrait de l’horaire de cette date.

  • soustraction de deux valeurs de date: le résultat est un nombre entier signé de jours entre ces deux dates.

  • emploi de la fonction difference sur deux valeurs de date: le résultat est la différence signée, sous forme de valeur de time!, entre ces deux dates.

Exemples

20-Feb-1980 + 50
== 10-Apr-1980

20-Feb-1980 + 3
== 23-Feb-1980

20-Feb-1980 - 25
== 26-Jan-1980

20-Feb-1980 + 100
== 30-May-1980

28-Feb-1980 + 20:30:45
== 28-Feb-1980/20:30:45

28-Feb-1980/8:30:00 + 20:30:45
== 29-Feb-1980/5:00:45

d: 20-Feb-1980
d/day: d/day + 50
== 10-Apr-1980

d: 20-Feb-1980
d/month: d/month + 5
== 20-Jul-1980

d: 28-Feb-1980/8:30:00
d/hour: d/hour + 48
== 1-Mar-1980/8:30:00

08/07/2017/10:45:00 - 20-Feb-1980/05:30:0
== 13653

difference 08/07/2017/10:45:00 20-Feb-1980/05:30:0
327677:15:00

7. Obtention de la date courante

La fonction now renvoie la date et l’heure courantes du système d’exploitation (y compris le fuseau horaire). Tous les accesseurs de date par chemin sont disponibles comme raffinements de now, avec quelques ajouts:

  • /utc: renvoie la date au format UTC.

  • /precise: renvoie la date avec une plus haute précision (1/60e de seconde sous Windows, micro-secondes sous Unix)

Exemples

now
== 8-Jul-2017/18:32:25+08:00

now/year
== 2017

now/hour
== 18

now/month
== 7

now/day
== 8

now/hour
== 18

now/zone
== 8:00:00

now/utc
== 8-Jul-2017/10:32:25

8. Autres fonctions concernant les dates

8.1. Random

Syntaxe

random <date>

<date> : une valeur de type date!

Description

Renvoie une date aléatoire en utilisant la date donnée en argument comme limite supérieure. Si la date donnée en argument n’a pas de composante horaire/fuseau horaire, la date résultante n’en aura pas non plus.

Exemples

random 09/07/2017
== 18-May-1972

random 09/07/2017
== 13-Aug-0981

random 09/07/2017/12:00:00+8
== 28-Feb-0341/17:57:12+04:00

random 09/07/2017/12:00:00+8
== 13-Dec-1062/5:09:12-00:30

results matching ""

    No results matching ""