DateTime

Rappresenta l'ora civile (o occasionalmente l'ora fisica).

Questo tipo di rapporto può rappresentare il tempo civile in uno dei seguenti modi:

  • Quando utcOffset è impostato e timeZone non è impostato: un'ora civile in un giorno di calendario con un determinato offset dal fuso orario UTC.
  • Quando timeZone è impostato e utcOffset non è impostato: un'ora civile in un giorno di calendario in un determinato fuso orario.
  • Quando non sono impostati né il fuso orario né il valore utcOffset: un'ora civile in un giorno di calendario secondo l'ora locale.

La data si riferisce al calendario gregoriano proletico.

Se anno, mese o giorno sono 0, il valore DateTime è considerato diverso da un anno, un mese o un giorno specifico.

Questo tipo può essere utilizzato anche per rappresentare un'ora fisica se sono impostati tutti i campi data e ora e una delle due opzioni è impostata su time_offset. Prendi in considerazione l'utilizzo del messaggio Timestamp per il tempo fisico. Se il tuo caso d'uso vuole anche memorizzare il fuso orario dell'utente, puoi farlo in un altro campo.

Questo tipo è più flessibile di quanto potrebbero volerle alcune applicazioni. Assicurati di documentare e convalidare le limitazioni della tua applicazione.

Rappresentazione 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.
}
Campi
year

integer

(Facoltativo) Anno della data Il valore deve essere compreso tra 1 e 9999 o 0 se viene specificata una data/ora senza anno.

month

integer

(Facoltativo) Mese dell'anno. Il valore deve essere compreso tra 1 e 12 o 0 se viene specificata una data/ora senza un mese.

day

integer

(Facoltativo) Giorno del mese. Deve essere compreso tra 1 e 31 ed essere valido per l'anno e il mese oppure 0 se viene specificata una data senza giorno.

hours

integer

(Facoltativo) Ore del giorno nel formato 24 ore. Il valore deve essere compreso tra 0 e 23, il valore predefinito è 0 (mezzanotte). Un'API può scegliere di consentire il valore "24:00:00" per scenari come l'orario di chiusura dell'attività.

minutes

integer

(Facoltativo) Minuti dell'ora del giorno. Il valore deve essere compreso tra 0 e 59 (il valore predefinito è 0).

seconds

integer

(Facoltativo) Secondi di tempo. Il valore predefinito deve essere compreso tra 0 e 59 (il valore predefinito è 0). Un'API può consentire il valore 60 se consente i secondi intercalari.

nanos

integer

(Facoltativo) Frazioni di secondi in nanosecondi. Il valore deve essere compreso tra 0 e 999.999.999, il valore predefinito è 0.

Campo di unione time_offset. (Facoltativo) Specifica la differenza rispetto al fuso orario UTC o al fuso orario del valore DateTime. Scegli attentamente le date, considerando che i dati relativi al fuso orario potrebbero cambiare in futuro (ad esempio, un paese modifica le date di inizio e fine dell'ora legale e le dateTime future nell'intervallo interessato erano già state archiviate). Se omesso, il campo DateTime è considerato come ora locale. time_offset può essere solo uno dei seguenti:
utcOffset

string (Duration format)

Offset UTC. Deve essere un numero intero, compreso tra -18 ore e +18 ore. Ad esempio, un offset UTC di -4:00 viene rappresentato come { seconds: -14400 }.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

timeZone

object (TimeZone)

Fuso orario.

TimeZone

Rappresenta un fuso orario dal database dei fusi orari IANA.

Rappresentazione JSON
{
  "id": string,
  "version": string
}
Campi
id

string

IANA Time Zone Database, ad esempio "America/New_York".

version

string

(Facoltativo) Numero di versione del database IANA, ad esempio "2019a".