DateTime

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

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

  • Quando utcOffset è impostato e timeZone non è impostato: un orario civile in un giorno di calendario con un particolare offset rispetto a 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é timeZone né utcOffset: un'ora civile in un giorno di calendario in ora locale.

La data è relativa al calendario gregoriano prolettico.

Se l'anno, il mese o il giorno sono 0, DateTime viene considerato senza un anno, un mese o un giorno specifici, rispettivamente.

Questo tipo può essere utilizzato anche per rappresentare un orario fisico se tutti i campi di data e ora sono impostati e viene impostato uno dei casi di time_offset oneof. Prendi in considerazione l'utilizzo del messaggio Timestamp per l'ora fisica. Se il tuo caso d'uso prevede anche di memorizzare il fuso orario dell'utente, puoi farlo in un altro campo.

Questo tipo è più flessibile di quanto alcune applicazioni potrebbero desiderare. 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 o 0 se viene specificato un valore datetime senza anno.

month

integer

Facoltativo. Mese dell'anno. Deve essere compreso tra 1 e 12 o 0 se si specifica una data e ora senza 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 specifichi una data e ora senza giorno.

hours

integer

Facoltativo. Ore del giorno in formato 24 ore. 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. Deve essere compreso tra 0 e 59, il valore predefinito è 0.

seconds

integer

Facoltativo. Secondi di minuti di tempo. Normalmente deve 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 secondi 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 del fuso orario potrebbero cambiare in futuro (ad esempio, un paese modifica le date di inizio/fine dell'ora legale e le date e ore future nell'intervallo interessato sono già state memorizzate). Se omesso, DateTime viene considerato nell'ora locale. time_offset può essere solo uno dei seguenti:
utcOffset

string (Duration format)

Scarto da UTC. Deve essere un numero intero di secondi 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.