DateTime

Reprezentuje czas urzędowy (lub czas fizyczny).

Ten typ może reprezentować czas cywilny na jeden z kilku możliwych sposobów:

  • Jeśli parametr utcOffset jest ustawiony, a parametr timeZone nie jest ustawiony: czas cywilny w danym dniu kalendarzowym z określonym przesunięciem względem czasu UTC.
  • Gdy parametr timeZone jest ustawiony, a parametr utcOffset nie jest ustawiony: czas cywilny w danym dniu kalendarzowym w danej strefie czasowej.
  • Jeśli ani timeZone, ani utcOffset nie są ustawione: czas cywilny w dniu kalendarzowym w czasie lokalnym.

Data jest obliczana na podstawie przedłużonego kalendarza gregoriańskiego.

Jeśli rok, miesiąc lub dzień mają wartość 0, obiekt DateTime jest uważany za niemający określonego roku, miesiąca ani dnia.

Ten typ może też służyć do reprezentowania czasu fizycznego, jeśli wszystkie pola daty i godziny są ustawione, a jeden z wariantów time_offset jest ustawiony. Zamiast tego możesz użyć wiadomości Timestamp, aby określić czas fizyczny. Jeśli w Twoim przypadku chcesz też przechowywać strefę czasową użytkownika, możesz to zrobić w innym polu.

Ten typ jest bardziej elastyczny niż w przypadku niektórych aplikacji. Udokumentuj i sprawdź 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

Opcjonalnie: Rok daty. Musi być w zakresie od 1 do 9999 lub 0, jeśli określasz datę i godzinę bez roku.

month

integer

Opcjonalnie: Miesiąc roku. Wartość musi mieścić się w przedziale od 1 do 12 lub 0, jeśli podajesz datę i godzinę bez miesiąca.

day

integer

Opcjonalnie: Dzień miesiąca. Musi być liczbą z zakresu 1–31 i musi być prawidłową wartością dla roku i miesiąca lub 0, jeśli podajesz datę i godzinę bez dnia.

hours

integer

Opcjonalnie: Godziny w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23. Domyślnie jest ustawiana na 0 (północ). Interfejs API może zezwolić na wartość „24:00:00” w przypadku scenariuszy takich jak godziny zamknięcia firmy.

minutes

integer

Opcjonalnie: Minuty w godzinie. Wartość musi mieścić się w zakresie od 0 do 59, domyślnie jest to 0.

seconds

integer

Opcjonalnie: sekundy, Wartość musi mieścić się w zakresie od 0 do 59, domyślnie jest to 0. Interfejs API może zezwalać na wartość 60, jeśli zezwala na sekundy przestępne.

nanos

integer

Opcjonalnie: Ułamki sekundy w nanosekundach. Musi mieścić się w przedziale od 0 do 999 999 999, a domyślnie przyjmuje wartość 0.

Pole unii time_offset. Opcjonalnie: Określa przesunięcie UTC lub strefę czasową DateTime. Wybierz je uważnie, pamiętając, że dane strefy czasowej mogą się w przyszłości zmienić (np. kraj zmodyfikuje daty rozpoczęcia i zakończenia czasu letniego, a dane DateTime z przyszłości w zakresie, którego dotyczy zmiana, zostały już zapisane). Jeśli nie podasz tej wartości, DateTime jest uważany za czas lokalny. time_offset może być tylko jednym z tych elementów:
utcOffset

string (Duration format)

przesunięcie UTC. Musi być podana w całych sekundach w zakresie od -18 do +18 godzin. Na przykład przesunięcie UTC o -4:00 będzie przedstawione jako { seconds: -14400 }.

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

timeZone

object (TimeZone)

Strefa czasowa.