Представляет гражданское время (или иногда физическое время).
Этот тип может представлять гражданское время одним из нескольких возможных способов:
- Если установлено utcOffset и не установлено timeZone: гражданское время в календарный день с определенным смещением от UTC.
- Если timeZone установлен, а utcOffset не установлен: гражданское время календарного дня в определенном часовом поясе.
- Если не заданы ни timeZone, ни utcOffset: гражданское время в календарный день по местному времени.
Дата указана относительно пролептического григорианского календаря.
Если год, месяц или день равны 0, то считается, что DateTime не имеет определенного года, месяца или дня соответственно.
Этот тип также может использоваться для представления физического времени, если заданы все поля даты и времени, а также задан один из вариантов time_offset . Вместо этого рассмотрите возможность использования сообщения Timestamp для представления физического времени. Если в вашем случае также требуется хранить часовой пояс пользователя, это можно сделать в другом поле.
Этот тип более гибок, чем может потребоваться некоторым приложениям. Обязательно документируйте и проверяйте ограничения вашего приложения.
| JSON-представление |
|---|
{ "year": integer, "month": integer, "day": integer, "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer, // Union field |
| Поля | |
|---|---|
year | Необязательно. Год даты. Должен быть от 1 до 9999 или 0, если указана дата и время без года. |
month | Необязательно. Месяц года. Должен быть от 1 до 12 или 0, если указана дата и время без месяца. |
day | Необязательно. День месяца. Должен быть от 1 до 31 и действителен для года и месяца, или 0, если указывается дата и время без дня. |
hours | Необязательно. Время суток в 24-часовом формате. Значение должно быть от 0 до 23, по умолчанию 0 (полночь). API может разрешить значение «24:00:00» для таких случаев, как время закрытия предприятия. |
minutes | Необязательно. Минуты часа. Должны быть от 0 до 59, по умолчанию 0. |
seconds | Необязательно. Секунды минут времени. Обычно должно быть от 0 до 59, по умолчанию 0. API может допускать значение 60, если оно допускает дополнительные секунды. |
nanos | Необязательно. Доли секунд в наносекундах. Должны быть от 0 до 999 999 999, по умолчанию 0. |
Поле объединения time_offset . Необязательно. Указывает либо смещение относительно UTC, либо часовой пояс для DateTime. Выбирайте внимательно, учитывая, что данные о часовом поясе могут измениться в будущем (например, страна меняет даты начала/окончания летнего времени, а будущие значения DateTime в соответствующем диапазоне уже сохранены). Если это поле пропущено, DateTime считается местным временем. time_offset может быть только одним из следующих: | |
utcOffset | Смещение относительно UTC. Должно быть целыми секундами в диапазоне от -18 до +18 часов. Например, смещение относительно UTC -4:00 будет представлено как {seconds: -14400}. Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « |
timeZone | Часовой пояс. |