Indice
DateTime
Rappresenta l'ora civile (o occasionalmente l'ora fisica).
Questo tipo di rappresentazione può rappresentare un'epoca civile in uno dei pochi modi possibili:
- Quando utc_offset è impostato e time_zone non è impostato: un'ora civile in un giorno di calendario con una determinata differenza rispetto a UTC.
- Quando time_zone è impostato e utc_offset non è impostato: un'ora civile in un giorno di calendario in un determinato fuso orario.
- Se non sono impostati né time_zone né utc_offset: 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 per il tuo caso d'uso vuoi memorizzare il fuso orario dell'utente, puoi farlo in un altro campo.
Questo tipo è più flessibile di quanto non sia richiesto da alcune applicazioni. Assicurati di documentare e convalidare le limitazioni della tua applicazione.
| Campi | |
|---|---|
year |
(Facoltativo) Anno della data. Deve essere compreso tra 1 e 9999 o 0 se si specifica una data/ora senza anno. |
month |
(Facoltativo) Mese dell'anno. Deve essere compreso tra 1 e 12 oppure 0 se viene specificato un valore data/ora senza un mese. |
day |
(Facoltativo) Giorno del mese. Deve essere compreso tra 1 e 31 e deve essere valido per l'anno e il mese oppure 0 se viene specificata una data/ora senza giorno. |
hours |
(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 |
(Facoltativo) Minuti dell'ora del giorno. Il valore deve essere compreso tra 0 e 59, il valore predefinito è 0. |
seconds |
(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 |
(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 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: |
|
utc_ |
Offset UTC. Devono essere secondi interi, compresi tra -18 ore e +18 ore. Ad esempio, una differenza UTC di -4:00 verrebbe rappresentata come { seconds: -14400 }. |
time_ |
Fuso orario. |
TimeOfDay
Rappresenta un'ora del giorno. La data e il fuso orario non sono significativi o sono specificati altrove. Un'API può scegliere di consentire i secondi intercalari. I tipi correlati sono google.type.Date e google.protobuf.Timestamp.
| Campi | |
|---|---|
hours |
Le ore di un giorno nel formato 24 ore. Deve essere maggiore o uguale a 0 e in genere deve essere minore o uguale a 23. Un'API potrebbe scegliere di consentire il valore "24:00:00" per scenari come l'orario di chiusura dell'attività. |
minutes |
Minuti di un'ora. Deve essere maggiore o uguale a 0 e minore o uguale a 59. |
seconds |
Secondi di un minuto. Deve essere maggiore o uguale a 0 e in genere deve essere minore o uguale a 59. Un'API potrebbe consentire il valore 60 se consente i secondi intercalari. |
nanos |
Frazioni di secondo, in nanosecond. Deve essere maggiore o uguale a 0 e minore o uguale a 999.999.999. |
TimeZone
Rappresenta un fuso orario del database dei fusi orari IANA.
| Campi | |
|---|---|
id |
Fuso orario del database IANA Time Zone, ad esempio "America/New_York". |
version |
(Facoltativo) Numero di versione del database dei fusi orari IANA, ad esempio "2019a". |