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 |
Pola | |
---|---|
year |
Opcjonalnie: Rok daty. Musi być w zakresie od 1 do 9999 lub 0, jeśli określasz datę i godzinę bez roku. |
month |
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 |
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 |
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 |
Opcjonalnie: Minuty w godzinie. Wartość musi mieścić się w zakresie od 0 do 59, domyślnie jest to 0. |
seconds |
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 |
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: |
|
utc |
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ą „ |
time |
Strefa czasowa. |