Representa la hora civil (o, en ocasiones, la hora física).
Este tipo puede representar una hora civil de una de las siguientes maneras posibles:
- Cuando se establece utcOffset y no se establece timeZone: Hora civil en un día del calendario con una compensación particular desde UTC.
- Cuando se establece timeZone y no se establece utcOffset: Hora civil en un día calendario en una zona horaria particular.
- Cuando no se configuran timeZone ni utcOffset: 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 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 configuran todos los campos de fecha y hora, y se establece cualquiera de los casos del elemento time_offset oneof. Considera usar el mensaje Timestamp para el tiempo físico. Si tu caso de uso también requiere almacenar la zona horaria del usuario, puedes hacerlo en otro campo.
Este tipo es más flexible de lo que algunas aplicaciones podrían desear. 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 ser entre 1 y 9999, o bien 0 si se especifica una fecha y hora sin año. |
month |
Opcional. Mes del año. Debe ser del 1 al 12 o 0 si se especifica una fecha y hora sin un mes. |
day |
Opcional. Día del mes. Debe ser entre 1 y 31, y ser válido para el año y el mes, o bien 0 si se especifica una fecha y hora sin un día. |
hours |
Opcional. Horas del día en formato de 24 horas. Debe ser del 0 al 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 (el valor predeterminado es 0). |
seconds |
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 |
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 UTC o la zona horaria del objeto DateTime. Elige con cuidado entre ellos, teniendo en cuenta que los datos de la 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 ya se almacenaron objetos DateTime futuros en el rango afectado). Si se omite, se considera que la fecha y hora son locales. Las direcciones (time_offset) solo pueden ser una de las siguientes opciones: |
|
utcOffset |
Es la compensación de UTC. Debe ser en segundos completos, entre -18 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 “ |
timeZone |
Zona horaria. |