DateTime

Reprezentuje czas cywilny (czasami fizyczny).

Ten typ czasu reprezentuje czas cywilny na kilka sposobów:

  • Gdy utcOffset jest ustawiony, a strefa czasu jest nieskonfigurowana: czas cywilny w dniu kalendarzowym z określonym przesunięciem względem czasu UTC.
  • Gdy strefa czasowa jest ustawiona, a funkcja utcOffset nie jest skonfigurowana: czas cywilny w dniu kalendarzowym w określonej strefie czasowej.
  • Gdy strefa czasowa ani strefa czasowa nie jest ustawiona: czas cywilny w dniu kalendarzowym.

Data jest określana względem kalendarza grecko-gregoriańskiego.

Jeśli rok, miesiąc lub dzień to 0, pole DataTime nie kwalifikuje się do konkretnego roku, miesiąca lub dnia.

Tego typu wartości można też używać do reprezentowania czasu fizycznego, jeśli ustawiono wszystkie pola daty i godziny oraz ustawiono opcję time_offset z każdego z tych pól. Zamiast tego rozważ użycie wiadomości Timestamp w czasie rzeczywistym. Jeśli w Twoim przypadku użycia chodzi o zapisanie strefy czasowej użytkownika, możesz to zrobić w innym polu.

Ten typ jest bardziej elastyczny niż w przypadku niektórych aplikacji. Pamiętaj, aby udokumentować i zweryfikować ograniczenia aplikacji.

Zapis 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.
}
Pola
year

integer

Opcjonalne. Rok daty. Wartość musi mieścić się w zakresie od 1 do 9999 lub 0 w przypadku określania daty bez roku.

month

integer

Opcjonalne. Miesiąc roku. W przypadku określania daty i godziny bez miesiąca musi ona wynosić od 1 do 12.

day

integer

Opcjonalne. Dzień miesiąca. Wartość musi mieścić się w przedziale od 1 do 31 i być prawidłowa dla roku i miesiąca lub 0 w przypadku określania daty i godziny.

hours

integer

Opcjonalne. Godziny w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23, a wartość domyślna to 0 (północ). Interfejs API może zezwalać na używanie wartości „24:00:00” w sytuacjach takich jak czas zamknięcia firmy.

minutes

integer

Opcjonalne. Minuty dnia. Wartość musi mieścić się w przedziale od 0 do 59, a wartość domyślna to 0.

seconds

integer

Opcjonalne. Sekund w minutach. Zwykle musi mieścić się w zakresie od 0 do 59 i domyślnie 0. Interfejs API może zezwalać na wartość 60, jeśli zezwala na sekundy dodatkowe.

nanos

integer

Opcjonalne. Ułamki sekund w nanosekundach. Wartość musi mieścić się w przedziale od 0 do 999 999 999, domyślnie jest ustawiona na 0.

Pole sumy: time_offset. Opcjonalne. Określa przesunięcie względem strefy czasowej UTC lub strefy czasowej elementu DateTime. Wybieraj ostrożnie te ustawienia, ponieważ dane o strefach czasowych mogą ulec zmianie w przyszłości (np. kraj zmieni swoje daty rozpoczęcia i zakończenia na podstawie czasu letniego, a przyszłe zakresy dat i godzin) będą już zapisane. W przypadku pominięcia tego ustawienia parametr DateTime jest uznawany za czas lokalny. time_offset może mieć tylko jedną z tych wartości:
utcOffset

string (Duration format)

Przesunięcie UTC. Musi to być całe sekundy, od -18 godzin do +18 godzin. Na przykład przesunięcie względem strefy czasowej UTC -4:00 zostanie przedstawione jako { sekund: -14400 }.

Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi s. Przykład: "3.5s".

timeZone

object (TimeZone)

Strefa czasowa.

TimeZone

Określa strefę czasową z bazy danych stref czasowych IANA (w języku angielskim).

Zapis JSON
{
  "id": string,
  "version": string
}
Pola
id

string

Strefa czasowa IANA bazy danych, np. „Ameryka/Nowy_Jork”.

version

string

Opcjonalne. Numer wersji bazy danych strefy czasowej IANA, np. „2019a”.