Índice
DateTime
Representa la hora civil (o, en ocasiones, el tiempo físico).
Este tipo puede representar una hora civil de una de las siguientes maneras:
- Cuando se establece utc_offset y no se establece time_zone, se utiliza una hora civil de un día calendario con un desplazamiento particular respecto de UTC.
- Cuando se establece la zona horaria y no se establece utc_offset, se utiliza una hora civil de un día calendario en una zona horaria específica.
- Cuando no se establecen time_zone ni utc_offset: una hora civil en un día calendario en la 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 el valor de DateTime no tiene un año, mes o día específico, respectivamente.
También se puede usar este tipo para representar una hora física si se configuran todos los campos de fecha y hora, y se establece cualquiera de las sentencias case de time_offset
. En su lugar, puedes usar el mensaje Timestamp
para el tiempo físico. Si tu caso de uso también quiere almacenar la zona horaria del usuario, puedes hacerlo en otro campo.
Este tipo es más flexible de lo que algunas aplicaciones podrían querer. Asegúrate de documentar y validar las limitaciones de tu aplicación.
Campos | |
---|---|
year |
Opcional. Año de la fecha. Debe encontrarse entre 1 y 9999, o 0 si se especifica una fecha y hora sin año. |
month |
Opcional. Mes del año. Debe encontrarse entre 1 y 12, o 0 si se especifica una fecha y hora sin mes. |
day |
Opcional. Día del mes. Debe encontrarse entre 1 y 31 y ser válido para el año y el mes, o 0 si se especifica una fecha y hora sin día. |
hours |
Opcional. Horas del día en formato de 24 horas. Debe ser un valor entre 0 y 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 |
Opcional. Minutos de horas del día. Debe ser un valor entre 0 y 59, y el valor predeterminado es 0. |
seconds |
Opcional. Segundos de minutos de la hora. Por lo general, debe ser un valor entre 0 y 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 un valor entre 0 y 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. Elígelos con cuidado, teniendo en cuenta que los datos de zona horaria pueden cambiar en el futuro (por ejemplo, un país modifica sus fechas de inicio y finalización del horario de verano, y las fechas y horas futuras del rango afectado ya se almacenaron). Si se omite, el valor DateTime se considera en la hora local. Las direcciones (time_offset ) solo pueden ser una de las siguientes opciones: |
|
utc_offset |
Compensación de UTC. Debe ser segundos enteros, entre -18 horas y +18 horas. Por ejemplo, una compensación UTC de -4:00 se representaría como { segundos: -14400 }. |
time_zone |
Zona horaria. |
TimeOfDay
Representa una hora del día. La fecha y la zona horaria no son significativas o se especifican en otro lugar. Una API puede optar por permitir segundos bisiestos. Los tipos relacionados son google.type.Date
y google.protobuf.Timestamp
.
Campos | |
---|---|
hours |
Horas del día en formato de 24 horas. Debe ser del 0 al 23. Una API puede permitir el valor “24:00:00” para casos como el horario de cierre de empresas. |
minutes |
Minutos de horas del día. Debe ser un valor entre 0 y 59. |
seconds |
Segundos de minutos de la hora. Por lo general, debe ser un valor entre 0 y 59. Una API puede permitir el valor 60 si permite segundos bisiestos. |
nanos |
Fracciones de segundos en nanosegundos. Debe ser un valor entre 0 y 999,999,999. |
TimeZone
Representa una zona horaria de la base de datos de zonas horarias de IANA.
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”. |