Représente le temps civil (ou parfois le temps physique).
Ce type peut représenter un temps civil de l'une des manières suivantes:
- Lorsque utcOffset est défini et que le fuseau horaire n'est pas défini: heure civile d'un jour calendaire avec un décalage par rapport à l'heure UTC.
- Lorsque timeZone est défini et que utcOffset n'est pas défini: heure civile un jour calendaire dans un fuseau horaire spécifique.
- Lorsque ni fuseau horaire, ni utcOffset n'est défini: heure civile d'un jour calendaire en heure locale.
La date est donnée selon le calendrier grégorien proleptique.
Si l'année, le mois ou le jour sont 0, la date et l'heure sont considérées comme n'ayant pas une année, un mois ou un jour spécifique.
Ce type peut également être utilisé pour représenter une heure physique si tous les champs de date et d'heure sont définis et que l'un des cas time_offset
est défini. Envisagez plutôt d'utiliser le message Timestamp
pour le temps physique. Si votre cas d'utilisation souhaite également stocker le fuseau horaire de l'utilisateur, vous pouvez le faire dans un autre champ.
Ce type de solution est plus flexible que certaines applications ne le souhaitent. Veillez à documenter et à valider les limites de votre application.
Représentation JSON |
---|
{ "year": integer, "month": integer, "day": integer, "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer, // Union field |
Champs | |
---|---|
year |
Facultatif. Année de la date. La valeur doit être comprise entre 1 et 9 999, ou égale à 0 si vous spécifiez une date et une heure sans année. |
month |
Facultatif. Mois de l'année. La valeur doit être comprise entre 1 et 12, ou égale à 0 si vous spécifiez un champ datetime sans mois. |
day |
Facultatif. Jour du mois. La valeur doit être comprise entre 1 et 31, et valide pour l'année et le mois, ou égale à 0 si vous spécifiez une date et une heure sans jour. |
hours |
Facultatif. Heure de la journée au format 24 heures. La valeur doit être comprise entre 0 et 23. La valeur par défaut est 0 (minuit). Une API peut choisir d'autoriser la valeur "24:00:00" pour des cas tels que l'heure de fermeture des bureaux. |
minutes |
Facultatif. Minutes de l'heure de la journée. La valeur doit être comprise entre 0 et 59. La valeur par défaut est 0. |
seconds |
Facultatif. Secondes de l'heure de la journée. La valeur doit normalement être comprise entre 0 et 59. La valeur par défaut est 0. Une API peut autoriser la valeur 60 si elle autorise les secondes intercalaires. |
nanos |
Facultatif. Fractions de secondes en nanosecondes. La valeur doit être comprise entre 0 et 999 999 999. La valeur par défaut est 0. |
Champ d'union time_offset . Facultatif. Spécifie le décalage UTC ou le fuseau horaire de DateTime. Choisissez avec soin les données de fuseau horaire, car elles peuvent changer à l'avenir (par exemple, un pays modifie ses dates de début et de fin, et les dates et heures de date à venir de la plage concernée ont déjà été stockées). Si cet élément n'est pas spécifié, le paramètre DateTime est considéré comme étant à l'heure locale. time_offset ne peut être qu'un des éléments suivants : |
|
utcOffset |
Décalage UTC. La durée doit être de quelques secondes entières, comprise entre -18 heures et +18 heures. Par exemple, un décalage UTC de -4:00 serait représenté par { seconds: -14400 }. Durée en secondes avec neuf chiffres au maximum après la virgule. Se termine par " |
timeZone |
Fuseau horaire |
TimeZone
Représente un fuseau horaire de la base de données des fuseaux horaires IANA.
Représentation JSON |
---|
{ "id": string, "version": string } |
Champs | |
---|---|
id |
Fuseau horaire de la base de données des fuseaux horaires IANA, par exemple "America/New_York". |
version |
Facultatif. Numéro de version de la base de données des fuseaux horaires IANA, par exemple "2019a". |