DateTime

Представляет гражданское время (или иногда физическое время).

Этот тип может представлять гражданское время одним из нескольких возможных способов:

  • Когда utcOffset установлен, а timeZone не установлен: гражданское время в календарный день с определенным смещением от UTC.
  • Когда часовой пояс установлен, а 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 time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
Поля
year

integer

По желанию. Год даты. Должно быть от 1 до 9999 или 0, если указывается дата и время без года.

month

integer

По желанию. Месяц года. Должно быть от 1 до 12 или 0, если указывается дата и время без месяца.

day

integer

По желанию. День месяца. Должен быть от 1 до 31 и действителен для года и месяца или 0, если указана дата и время без дня.

hours

integer

По желанию. Часы суток в 24-часовом формате. Должно быть от 0 до 23, по умолчанию 0 (полночь). API может выбрать значение «24:00:00» для таких сценариев, как время закрытия предприятия.

minutes

integer

По желанию. Минуты часа дня. Должно быть от 0 до 59, по умолчанию 0.

seconds

integer

По желанию. Секунды минут времени. Обычно должно быть от 0 до 59, по умолчанию 0. API может разрешить значение 60, если он допускает дополнительные секунды.

nanos

integer

По желанию. Доли секунд в наносекундах. Должно быть от 0 до 999 999 999, по умолчанию 0.

Поле time_offset . По желанию. Задает либо смещение в формате UTC, либо часовой пояс DateTime. Тщательно выбирайте между ними, учитывая, что данные о часовых поясах могут измениться в будущем (например, страна изменяет даты начала и окончания летнего времени, а будущие даты и время в затронутом диапазоне уже сохранены). Если этот параметр опущен, считается, что DateTime соответствует местному времени. time_offset может быть только одним из следующих:
utcOffset

string ( Duration format)

Смещение UTC. Должны быть целые секунды в диапазоне от -18 часов до +18 часов. Например, смещение UTC, равное -4:00, будет представлено как {seconds: -14400}.

Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « s ». Пример: "3.5s" .

timeZone

object ( TimeZone )

Часовой пояс.

Часовой пояс

Представляет часовой пояс из базы данных часовых поясов IANA .

Представление JSON
{
  "id": string,
  "version": string
}
Поля
id

string

Часовой пояс базы данных часовых поясов IANA, например «America/New_York».

version

string

По желанию. Номер версии базы данных часовых поясов IANA, например «2019a».