Представляет гражданское время (или иногда физическое время).
Этот тип может представлять гражданское время одним из нескольких возможных способов:
- Если установлен 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 будет представлено как {секунды: -14400}. Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « |
timeZone | Часовой пояс. |
Часовой пояс
Представляет часовой пояс из базы данных часовых поясов IANA .
JSON-представление |
---|
{ "id": string, "version": string } |
Поля | |
---|---|
id | Часовой пояс IANA Часовой пояс базы данных, например «Америка/Нью_Йорк». |
version | Необязательный. Номер версии базы данных часовых поясов IANA, например «2019a». |