DateTime

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 está definido e timeTime não está definido: um horário civil em um dia do calendário com um deslocamento específico do UTC.
  • Quando o timeZone é definido e o utcOffset não está definido: uma hora civil em um dia do calendário em um fuso horário específico.
  • Quando nem o timeZone nem o utcOffset estiver definido: um horário civil em um dia do calendário no horário local.

A data é referente ao calendário gregoriano proléptico.

Se 0, mês ou dia forem 0, o DateTime será considerado como não tendo um ano, mês ou dia específico, respectivamente.

Esse tipo também poderá ser usado para representar um horário físico se todos os campos de data e hora forem definidos e um dos casos de time_offset for definido. Considere usar a mensagem Timestamp para tempo físico. Caso seu caso de uso também queira armazenar o fuso horário do usuário, isso pode ser feito em outro campo.

Esse tipo é mais flexível do que alguns apps. 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 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.
}
Campos
year

integer

Opcional. Ano da data. Precisa ser de 1 a 9999, ou 0 se especificar uma data/hora sem um ano.

month

integer

Opcional. Mês do ano. Precisa ser de 1 a 12, ou 0 se especificar uma data/hora sem um mês.

day

integer

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/hora sem um dia.

hours

integer

Opcional. Horas do dia no formato de 24 horas. Precisa ser de 0 a 23, 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

integer

Opcional. Minutos da hora do dia. Precisa ser de 0 a 59, o padrão é 0.

seconds

integer

Opcional. Segundos do minutos do horário. Normalmente precisa ser de 0 a 59, o padrão é 0. Uma API pode permitir o valor 60 se permitir segundos bissextos.

nanos

integer

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 UTC ou o fuso horário de DateTime. Escolha cuidadosamente entre elas, considerando que os dados de fuso horário podem mudar no futuro (por exemplo, um país modifica as datas de início/término do horário de verão, e as datas e horas futuras no intervalo afetado já foram armazenadas). Se omitido, o DateTime será considerado no horário local. time_offset pode ser apenas de um dos tipos a seguir:
utcOffset

string (Duration format)

Deslocamento UTC. Deve ser um número inteiro de segundos, entre -18 horas e +18 horas. Por exemplo, um deslocamento UTC de -4:00 seria representado como { seconds: -14400 }.

Duração em segundos com até nove dígitos fracionários, terminando com "s". Exemplo: "3.5s".

timeZone

object (TimeZone)

Fuso horário.

TimeZone

Representa um fuso horário do banco de dados IANA.

Representação JSON
{
  "id": string,
  "version": string
}
Campos
id

string

Fuso horário do banco de dados IANA. Por exemplo: "America/New_York".

version

string

Opcional. Número da versão do banco de dados IANA de fuso horário. Por exemplo: "2019a".