DateTime

Représente l'heure civile (ou parfois l'heure physique).

Ce type peut représenter une heure civile de plusieurs manières :

  • Lorsque utcOffset est défini et que timeZone n'est pas défini : une heure civile un jour donné du calendrier avec un décalage spécifique par rapport à l'heure UTC.
  • Lorsque timeZone est défini et que utcOffset ne l'est pas : une heure civile un jour donné dans un fuseau horaire spécifique.
  • Lorsque ni timeZone ni utcOffset ne sont définis : une heure civile un jour donné du calendrier, en heure locale.

La date est liée au calendrier grégorien proleptique.

Si l'année, le mois ou le jour sont définis sur 0, cela signifie que la valeur DateTime ne comporte pas d'année, de mois ou de jour spécifiques, respectivement.

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 si l'un des cas de time_offset est défini. Envisagez d'utiliser le message Timestamp pour le temps physique. Si votre cas d'utilisation nécessite également de stocker le fuseau horaire de l'utilisateur, vous pouvez le faire dans un autre champ.

Ce type est plus flexible que ce que certaines applications peuvent souhaiter. 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. Elle doit être comprise entre 1 et 9999, ou égale à 0 si vous spécifiez une date et heure sans année.

month

integer

Facultatif. Mois de l'année. Il doit être compris entre 1 et 12, ou égal à 0 si vous spécifiez une date et heure sans mois.

day

integer

Facultatif. Jour du mois. Il doit être compris entre 1 et 31, et valide pour l'année et le mois, ou égal à 0 si vous spécifiez une date et heure sans jour.

hours

integer

Facultatif. Heure de la journée au format 24 heures. Elle doit être comprise entre 0 et 23, et 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. Elle doit être comprise entre 0 et 59 (0 par défaut).

seconds

integer

Facultatif. Secondes de l'heure de la journée. Elles doivent normalement être comprises entre 0 et 59 (0 par défaut). 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 (0 par défaut).

Champ d'union time_offset. Facultatif. Spécifie le décalage UTC ou le fuseau horaire de DateTime. Choisissez soigneusement entre les deux, en gardant à l'esprit que les données de fuseau horaire peuvent changer à l'avenir (par exemple, si un pays modifie les dates de début et de fin de l'heure d'été, et que les DateTime futurs de la plage concernée ont déjà été stockés). Si elle est omise, la valeur DateTime est considérée comme étant en heure locale. time_offset ne peut être qu'un des éléments suivants :
utcOffset

string (Duration format)

Décalage UTC. Doit être un nombre entier de secondes, compris 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 et se terminant par "s". Exemple : "3.5s"

timeZone

object (TimeZone)

Fuseau horaire