DateTime

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 time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
Champs
year

integer

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

integer

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

integer

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

integer

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

integer

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

integer

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

integer

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

string (Duration format)

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 "s". Exemple : "3.5s".

timeZone

object (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

string

Fuseau horaire de la base de données des fuseaux horaires IANA, par exemple "America/New_York".

version

string

Facultatif. Numéro de version de la base de données des fuseaux horaires IANA, par exemple "2019a".