Indeks
DateTime
Reprezentuje czas cywilny (lub czasem czas fizyczny).
Ten typ może oznaczać czas cywilny na kilka sposobów:
- Gdy zasada utc_offset jest ustawiona, a strefa czasowa jest nieskonfigurowana: czas cywilny w dniu kalendarzowym z określonym przesunięciem względem czasu UTC.
- Gdy ustawiona jest strefa czasowa, a wartość utc_offset jest nieskonfigurowana: czas cywilny w dniu kalendarzowym w danej strefie czasowej.
- Gdy nie ustawiono ani pola time_zone, ani utc_offset: czas cywilny w dniu kalendarzowym w czasie lokalnym.
Data zależy od kalendarza proleptycznego gregoriańskiego.
Jeśli rok, miesiąc lub dzień mają wartość 0, przyjmuje się, że parametr DateTime nie ma odpowiednio określonego roku, miesiąca ani dnia.
Tego typu można też używać do reprezentowania czasu fizycznego, jeśli wszystkie pola daty i godziny są skonfigurowane oraz ustawiono oba przypadki pola time_offset
. Zamiast tego rozważ użycie komunikatu Timestamp
w czasie fizycznym. 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ż niektóre aplikacje. Udokumentuj i zweryfikuj ograniczenia aplikacji.
Pola | |
---|---|
year |
Opcjonalnie. Rok. Wartość musi mieścić się w przedziale od 1 do 9999 lub mieć wartość 0, jeśli określasz datę i godzinę bez roku. |
month |
Opcjonalnie. Miesiąc roku. Musi mieścić się w zakresie od 1 do 12 lub 0 w przypadku określenia daty i godziny bez miesiąca. |
day |
Opcjonalnie. Dzień miesiąca. Musi mieć wartość od 1 do 31 i prawidłowy dla roku i miesiąca lub mieć wartość 0, jeśli określasz datę i godzinę bez dnia. |
hours |
Opcjonalnie. Godziny dnia w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23. Domyślnie ustawiona jest wartość 0 (północ). Interfejs API może zezwalać na wartość „24:00:00” w przypadku takich scenariuszy jak godzina zamknięcia firmy. |
minutes |
Opcjonalnie. Minuty dnia. Musi mieścić się w zakresie od 0 do 59. Domyślna wartość to 0. |
seconds |
Opcjonalnie. Sekundy czasu trwania. Zwykle musi mieścić się w zakresie od 0 do 59. Domyślna wartość to 0. Interfejs API może akceptować wartość 60, jeśli zezwala na użycie sekund przestępnych. |
nanos |
Opcjonalnie. Ułamki sekund w nanosekundach. Musi mieścić się w zakresie od 0 do 999 999 999. Domyślna wartość to 0. |
Pole sumy time_offset . Opcjonalnie. Określa przesunięcie czasu UTC lub strefę czasową godziny DateTime. Dobrze się zastanów, ponieważ dane strefy czasowej mogą się w przyszłości zmienić (na przykład kraj zmieni daty rozpoczęcia i zakończenia czasu letniego, a przyszłe daty i godziny z odpowiedniego zakresu zostały już zapisane). Jeśli jej nie podano, przyjmuje się, że ustawiona jest wartość DateTime w czasie lokalnym. time_offset może mieć tylko jedną z tych wartości: |
|
utc_offset |
Przesunięcie UTC. Musi to być pełne sekundy z zakresu od -18 godzin do +18 godzin. Na przykład przesunięcie w czasie UTC wynoszący -4:00 zostanie przedstawione jako { s: -14400 }. |
time_zone |
Strefa czasowa. |
LatLng
Obiekt reprezentujący parę szerokości i długości geograficznej. Jest ona wyrażona jako para podwójnej precyzji reprezentująca stopnie szerokości i długości geograficznej. O ile nie wskazano inaczej, ten obiekt musi być zgodny ze standardem WGS84. Wartości muszą mieścić się w znormalizowanych zakresach.
Pola | |
---|---|
latitude |
Szerokość geograficzna w stopniach. Musi mieścić się w zakresie [-90,0, +90,0]. |
longitude |
Długość geograficzna w stopniach. Musi mieścić się w zakresie od -180,0 do +180,0]. |
TimeZone
Reprezentuje strefę czasową z bazy danych stref czasowych IANA.
Pola | |
---|---|
id |
Strefa czasowa bazy danych strefy czasowej IANA, np. „America/New_York”. |
version |
Opcjonalnie. Numer wersji bazy danych stref czasowych IANA, np. „2019a”. |