Indica il tempo civile (o occasionalmente il tempo fisico).
Questo tipo può indicare l'ora civile in uno dei seguenti modi:
- Quando viene impostato utcOffset e timeZone non è impostato: un'ora civile in un giorno di calendario con uno scarto particolare rispetto al fuso orario UTC.
- Se il fuso orario è impostato e utcOffset non è impostato: l'ora civile di un giorno di calendario in un determinato fuso orario.
- Se non è impostato né timeZone né utcOffset: un'ora civile in un giorno di calendario nell'ora locale.
La data è relativa al calendario gregoriano prolettico.
Se l'anno, il mese o il giorno sono pari a 0, si considera che per DateTime non siano associati rispettivamente un anno, un mese o un giorno specifici.
Questo tipo può essere utilizzato anche per rappresentare un orario fisico se sono impostati tutti i campi relativi a data e ora e se è impostato entrambi i casi di time_offset
. Prendi in considerazione l'utilizzo del messaggio Timestamp
per il tempo fisico. Se nel tuo caso d'uso vuoi archiviare 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 |
Campi | |
---|---|
year |
Campo facoltativo. Anno del giorno. Il valore deve essere compreso tra 1 e 9999 o 0 se specifichi una data/ora senza un anno. |
month |
Campo facoltativo. Mese dell'anno. Il valore deve essere compreso tra 1 e 12 o 0 se specifichi una data/ora senza un mese. |
day |
Campo facoltativo. Giorno del mese. Deve essere compreso tra 1 e 31 ed essere valido per l'anno e il mese oppure 0 se specifichi un orario senza un giorno. |
hours |
Campo 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 |
Campo facoltativo. Minuti di ora del giorno. Il valore deve essere compreso tra 0 e 59, il valore predefinito è 0. |
seconds |
Campo facoltativo. Secondi di minuti. 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 |
Campo 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 . Campo facoltativo. Specifica o la differenza da UTC o il fuso orario di DateTime. Scegli attentamente l'uno da uno all'altro, dato che i dati relativi al fuso orario possono cambiare in futuro (ad esempio, se un paese modifica le date di inizio/fine dell'ora legale e i valori DateTime future dell'intervallo interessato sono già stati memorizzati). Se omesso, la data e l'ora sono considerate espresse nell'ora locale. time_offset può essere solo uno dei seguenti: |
|
utcOffset |
Differenza UTC. Deve essere di 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 " |
timeZone |
Fuso orario. |
TimeZone
Rappresenta un fuso orario del database dei fusi orari IANA.
Rappresentazione JSON |
---|
{ "id": string, "version": string } |
Campi | |
---|---|
id |
Fuso orario del database del fuso orario IANA, ad esempio "America/New_York". |
version |
Campo facoltativo. Numero di versione del database IANA Time Zone Database, ad esempio "2019a". |