Representa la hora civil (o ocasionalmente la hora física).
Este tipo puede representar una hora civil de una de las siguientes maneras:
- Cuando se configura utcOffset y se establece la zona horaria, se trata de una hora civil en un día calendario con un desplazamiento particular desde UTC.
- Cuando se establece timeZone y utcOffset no están configurados: un horario en un día calendario en una zona horaria en particular.
- Cuando no se configuran timeZone ni utcOffset: una hora civil de 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 si se estableció cualquiera de los casos time_offset
. En su lugar, usa el mensaje Timestamp
para el tiempo físico. Si su caso de uso también desea almacenar la zona horaria del usuario, puede hacerlo en otro campo.
Este tipo de aplicación es más flexible de lo que algunas aplicaciones podrían 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 |
Campos | |
---|---|
year |
Opcional. Año de la fecha. Debe encontrarse entre 1 y 9999, o 0 si se especifica una fecha y hora sin un año. |
month |
Opcional. Mes del año. Debe encontrarse entre 1 y 12, o 0 si se especifica una fecha y hora sin un mes. |
day |
Opcional. Día del mes. Debe encontrarse entre 1 y 31 y ser válido para el mes del año, o 0 si se especifica una fecha y hora sin un día. |
hours |
Opcional. Horas del día en formato de 24 horas. El valor debería estar comprendido entre 0 y 23, y la configuración predeterminada es 0 (medianoche). Una API puede permitir el valor “24:00:00” para casos como el horario de cierre de empresas. |
minutes |
Opcional. Minutos de horas del día. Debe ser de 0 a 59 y el valor predeterminado es 0. |
seconds |
Opcional. Segundos de minutos de la hora. Por lo general, debe ser de 0 a 59 y el valor predeterminado es 0. Una API puede permitir el valor 60 si permite segundos bisiestos. |
nanos |
Opcional. Fracciones de segundos en nanosegundos. Debe ser de 0 a 999,999,999; el valor predeterminado es 0. |
Campo de unión time_offset . Opcional. Especifica la compensación UTC o la zona horaria de DateTime. Elija entre ellos cuidadosamente, teniendo en cuenta que los datos de la zona horaria pueden cambiar en el futuro (por ejemplo, si un país modifica sus fechas de inicio y finalización del DST, y las fechas y horas futuras del intervalo afectado ya se habían almacenado). Si se omite, se considera que la fecha y hora está en la hora local. Las direcciones (time_offset ) solo pueden ser una de las siguientes opciones: |
|
utcOffset |
Desplazamiento de UTC Debe ser segundos enteros, de -18 a 18 horas o más. Por ejemplo, un desplazamiento de UTC de -4:00 se representaría como { seconds: -14400 }. Una duración en segundos con un máximo de 9 dígitos decimales, que termina en ' |
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 |
Zona horaria de la base de datos de zonas horarias de IANA, p. ej., “America/New_York”. |
version |
Opcional. Número de versión de la base de datos de zonas horarias de IANA, p. ej., “2019a”. |