DateTime

Representa la hora civil (u ocasionalmente la hora física).

Este tipo puede representar una hora civil de varias formas posibles:

  • Cuando se define utcOffset y no se define timeZone: hora oficial de un día del calendario con un desfase concreto con respecto a UTC.
  • Cuando se define timeZone y no se define utcOffset: hora oficial de un día del calendario en una zona horaria concreta.
  • Si no se definen ni timeZone ni utcOffset, se trata de la hora oficial de un día del calendario en la hora local.

La fecha hace referencia al calendario gregoriano proléptico.

Si el año, el mes o el día son 0, se considera que DateTime no tiene un año, mes o día específicos, respectivamente.

Este tipo también se puede usar para representar una hora física si se definen todos los campos de fecha y hora y se define cualquiera de los casos de time_offset oneof. Considera usar el mensaje timestamp para el tiempo físico. Si también quieres almacenar la zona horaria del usuario, puedes hacerlo en otro campo.

Este tipo es más flexible de lo que algunas aplicaciones pueden querer. Asegúrate de documentar y validar las limitaciones de tu aplicación.

Representación 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. Año de la fecha. Debe ser un número comprendido entre 1 y 9999, o 0 si se especifica una fecha y hora sin año.

month

integer

Opcional. Es el mes del año. Debe ser un número comprendido entre 1 y 12, o 0 si se especifica una fecha y hora sin mes.

day

integer

Opcional. Es el día del mes. Debe ser un número comprendido entre 1 y 31 válido para el año y el mes. También puede ser 0 si se especifica una fecha y hora sin día.

hours

integer

Opcional. Hora del día en formato de 24 horas. Debe ser un número comprendido entre 0 y 23. El valor predeterminado es 0 (medianoche). Las APIs pueden permitir el valor "24:00:00" para expresar, por ejemplo, la hora de cierre de la empresa.

minutes

integer

Opcional. Minutos transcurridos de la hora del día. Debe ser un número comprendido entre 0 y 59. El valor predeterminado es 0.

seconds

integer

Opcional. Segundos transcurridos de los minutos de la hora. Normalmente, debe ser un número comprendido entre 0 y 59. El valor predeterminado es 0. Las APIs pueden permitir el valor 60 si permiten los segundos intercalares.

nanos

integer

Opcional. Fracciones de segundo en nanosegundos. Debe ser un número comprendido entre 0 y 999.999.999. El valor predeterminado es 0.

Campo de unión time_offset. Opcional. Especifica el desfase de UTC o la zona horaria de DateTime. Elige con cuidado entre ellos, teniendo en cuenta que los datos de la zona horaria pueden cambiar en el futuro (por ejemplo, si un país modifica las fechas de inicio y fin del horario de verano y ya se han almacenado objetos DateTime futuros en el intervalo afectado). Si se omite, se considera que la fecha y hora están en la hora local. time_offset solo puede ser una de estas dos opciones:
utcOffset

string (Duration format)

Compensación de UTC. Debe ser un número entero de segundos comprendido entre -18 y +18 horas. Por ejemplo, un desfase UTC de -4:00 se representaría como { seconds: -14400 }.

Duración en segundos con hasta nueve decimales, que termina con "s". Por ejemplo: "3.5s".

timeZone

object (TimeZone)

zona horaria.

TimeZone

Representa una zona horaria de la base de datos de zonas horarias de IANA.

Representación JSON
{
  "id": string,
  "version": string
}
Campos
id

string

Zona horaria de la base de datos de zonas horarias de IANA. Por ejemplo, "America/New_York".

version

string

Opcional. Número de versión de la base de datos de zonas horarias de IANA. Por ejemplo, "2019a".