Representa o horário civil (ou, ocasionalmente, o horário físico).
Esse tipo pode representar um horário civil de algumas maneiras possíveis:
- Quando utcOffset é definido e timeZone não é definido: uma hora civil em um dia do calendário com um determinado deslocamento do UTC.
- Quando timeZone é definido e utcOffset não é: uma hora civil em um dia do calendário em um fuso horário específico.
- Quando nem timeZone nem utcOffset estão definidos: um horário civil em um dia do calendário no horário local.
A data é referente ao calendário gregoriano proléptico.
Se ano, mês ou dia forem 0, o DateTime será considerado sem um ano, mês ou dia específico, respectivamente.
Esse tipo também pode ser usado para representar um horário físico se todos os campos de data e hora estiverem definidos e um dos casos do time_offset oneof estiver definido. Considere usar a mensagem Timestamp para tempo físico. Se você também quiser armazenar o fuso horário do usuário, isso pode ser feito em outro campo.
Esse tipo é mais flexível do que alguns aplicativos podem querer. Documente e valide as limitações do aplicativo.
| Representação JSON |
|---|
{ "year": integer, "month": integer, "day": integer, "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer, // Union field |
| Campos | |
|---|---|
year |
Opcional. Ano da data. Precisa ser de 1 a 9999, ou 0 se especificar uma data e hora sem um ano. |
month |
Opcional. Mês do ano. Precisa ser de 1 a 12, ou 0 se especificar uma data e hora sem um mês. |
day |
Opcional. Dia do mês. Precisa ser de 1 a 31 e válido para o ano e o mês, ou 0 se especificar uma data e hora sem um dia. |
hours |
Opcional. Horas do dia no formato de 24 horas. Precisa ser de 0 a 23, e o padrão é 0 (meia-noite). Uma API pode permitir o valor "24:00:00" para o horário de fechamento da empresa, por exemplo. |
minutes |
Opcional. Minutos da hora do dia. Precisa ser de 0 a 59, e o padrão é 0. |
seconds |
Opcional. Segundos do minutos do horário. Normalmente precisa ser de 0 a 59, e o padrão é 0. Uma API pode permitir o valor 60 se permitir segundos bissextos. |
nanos |
Opcional. Frações de segundos em nanossegundos. Precisa ser de 0 a 999.999.999. O padrão é 0. |
Campo de união time_offset. Opcional. Especifica o deslocamento de UTC ou o fuso horário do DateTime. Escolha com cuidado, considerando que os dados de fuso horário podem mudar no futuro. Por exemplo, um país pode modificar as datas de início e fim do horário de verão, e os DateTimes futuros no período afetado já podem ter sido armazenados. Se omitido, o DateTime será considerado no horário local. time_offset pode ser apenas de um dos tipos a seguir: |
|
utcOffset |
Compensação de UTC. Precisa ser um número inteiro de segundos entre -18 horas e +18 horas. Por exemplo, um ajuste de UTC de -4:00 seria representado como { seconds: -14400 }. Duração em segundos com até nove dígitos fracionários, terminando em " |
timeZone |
Fuso horário. |