DateTime

Representa la hora civil (o, en ocasiones, la hora física).

Este tipo puede representar una hora civil de una de las siguientes maneras:

  • Cuando utcOffset está establecido y timeZone no está establecido: una hora civil en un día calendario con un desplazamiento particular de UTC.
  • Cuando se establece timeZone y no se establece utcOffset, se muestra una hora civil en un día calendario en una zona horaria en particular.
  • Cuando no se establecen timeZone ni utcOffset, se muestra una hora civil en un día calendario en hora local.

La fecha está relacionada con el calendario gregoriano proléptico.

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

Este tipo también se puede usar para representar una hora física si se configuran todos los campos de fecha y hora, y se establece cualquiera de los casos de time_offset oneof. En su lugar, considera usar el mensaje Timestamp para la hora física. Si tu caso de uso también desea almacenar la zona horaria del usuario, puedes hacerlo en otro campo.

Este tipo es más flexible que el que pueden desear algunas aplicaciones. 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 entre 1 y 9999, o bien 0 si se especifica una fecha y hora sin año.

month

integer

Opcional. Mes del año. Debe ser del 1 al 12 o 0 si se especifica una fecha y hora sin un mes.

day

integer

Opcional. Día del mes. Debe ser entre 1 y 31, y ser válido para el año y el mes, o bien debe ser 0 si se especifica una fecha y hora sin un día.

hours

integer

Opcional. Horas del día en formato de 24 horas. Debe ser de 0 a 23, el valor predeterminado es 0 (medianoche). Una API puede permitir el valor “24:00:00” para casos como el horario de cierre de empresas.

minutes

integer

Opcional. Minutos de horas del día. Debe ser un valor entre 0 y 59. El valor predeterminado es 0.

seconds

integer

Opcional. Segundos de minutos de la hora. Por lo general, debe ser un valor entre 0 y 59, el valor predeterminado es 0. Una API puede permitir el valor 60 si permite segundos bisiestos.

nanos

integer

Opcional. Fracciones de segundos en nanosegundos. Debe ser un valor entre 0 y 999,999,999. El valor predeterminado es 0.

Campo de unión time_offset. Opcional. Especifica el desplazamiento en UTC o la zona horaria de DateTime. Elige cuidadosamente entre ellos, teniendo en cuenta que los datos de zona horaria pueden cambiar en el futuro (por ejemplo, un país modifica las fechas de inicio y finalización del horario de verano, y las DateTime futuras en el rango afectado ya se habían almacenado). Si se omite, se considera que la fecha y hora están en la hora local. time_offset puede ser solo uno de los siguientes:
utcOffset

string (Duration format)

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

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. 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, p. ej., “America/New_York”.

version

string

Opcional. Número de versión de la base de datos de zonas horarias de IANA, p. ej., “2019a”.