DateTime

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

Questo tipo può rappresentare un orario civile in uno dei seguenti modi:

  • Quando utcOffset è impostato e timeZone non è impostato: un'ora civile in un giorno di calendario con una determinata differenza rispetto a UTC.
  • Quando timeZone è impostato e utcOffset non è impostato: un'ora civile in un giorno di calendario in un determinato fuso orario.
  • Se non sono impostati né timeZone né utcOffset: un'ora civile in un giorno di calendario in ora locale.

La data è relativa al calendario gregoriano prolettico.

Se anno, mese o giorno sono pari a 0, l'oggetto DateTime è considerato non avere rispettivamente un anno, un mese o un giorno specifici.

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

Questo tipo è più flessibile di quanto potrebbe essere richiesto da 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. Deve essere compreso tra 1 e 9999 oppure 0 se viene specificata una data e ora senza anno.

month

integer

Facoltativo. Mese dell'anno. Deve essere compreso tra 1 e 12 oppure 0 se viene specificato un valore data/ora senza un mese.

day

integer

Facoltativo. Giorno del mese. Deve essere compreso tra 1 e 31 e valido per l'anno e il mese oppure 0 se viene specificato un valore data/ora senza un giorno.

hours

integer

Facoltativo. Ore del giorno nel formato 24 ore. Deve essere compreso tra 0 e 23, il valore predefinito è 0 (mezzanotte). Un'API potrebbe 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. Deve essere compreso tra 0 e 59. Il valore predefinito è 0.

seconds

integer

Facoltativo. Secondi di minuti del tempo. Deve normalmente essere compreso tra 0 e 59, il valore predefinito è 0. Un'API potrebbe consentire il valore 60 se consente i secondi intercalari.

nanos

integer

Facoltativo. Frazioni di secondo in nanosecondi. Deve essere compreso tra 0 e 999.999.999; il valore predefinito è 0.

Campo unione time_offset. Facoltativo. Specifica l'offset UTC o il fuso orario di DateTime. Scegli con attenzione tra le due opzioni, tenendo presente che i dati relativi al fuso orario potrebbero cambiare in futuro (ad esempio, un paese modifica le date di inizio/fine del DST e le date e ore future nell'intervallo interessato sono già state memorizzate). Se omesso, la data e l'ora sono considerate in ora locale. time_offset può essere solo uno dei seguenti:
utcOffset

string (Duration format)

Scarto da UTC. Devono essere secondi interi, compresi 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 del database dei fusi orari IANA.

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

string

Fuso orario del database IANA Time Zone, ad esempio "America/New_York".

version

string

Facoltativo. Numero di versione del database dei fusi orari IANA, ad esempio "2019a".