Índice
DateTime
Representa el tiempo civil (o, en ocasiones, el tiempo físico).
Este tipo puede representar una hora civil de una de las siguientes maneras:
- Cuando se configura utc_offset y time_zone no se establece: una hora civil en un día calendario con una diferencia particular con respecto a UTC.
- Cuando se establece time_zone y utc_offset no se establece: 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 de un día calendario en la hora local
La fecha está relacionada con el calendario gregoriano proléptico.
Si el valor de año, mes o día es 0, se considera que DateTime no tiene un año, mes o día específico 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 las sentencias case de time_offset. En su lugar, puedes usar el mensaje Timestamp para pasar tiempo físico. Si en tu caso de uso también deseas almacenar la zona horaria del usuario, puedes hacerlo en otro campo.
Este tipo es más flexible de lo que podrían querer algunas aplicaciones. 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 un día. |
hours |
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 |
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 estar 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 de UTC o la zona horaria de DateTime. Elige cuidadosamente entre ellas. Ten 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 DST, y ya se almacenaron las fechas y horas futuras en el rango afectado). Si se omite, se considera que DateTime está en la hora local. Las direcciones (time_offset) solo pueden ser una de las siguientes opciones: |
|
utc_offset |
Compensación de UTC. Deben 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. |
LatLng
Es un objeto que representa un par de valores de latitud y longitud. Esto se expresa como un par de dobles para representar la latitud en grados y la longitud en grados. A menos que se especifique lo contrario, este objeto debe cumplir con el estándar WGS84. Los valores deben pertenecer a rangos normalizados.
| Campos | |
|---|---|
latitude |
La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0]. |
longitude |
La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0]. |
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”. |