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 |
Pola | |
---|---|
year |
Opcjonalne. Rok daty. Wartość musi mieścić się w zakresie od 1 do 9999 lub 0 w przypadku określania daty bez roku. |
month |
Opcjonalne. Miesiąc roku. W przypadku określania daty i godziny bez miesiąca musi ona wynosić od 1 do 12. |
day |
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 |
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 |
Opcjonalne. Minuty dnia. Wartość musi mieścić się w przedziale od 0 do 59, a wartość domyślna to 0. |
seconds |
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 |
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 |
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 |
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 |
Strefa czasowa IANA bazy danych, np. „Ameryka/Nowy_Jork”. |
version |
Opcjonalne. Numer wersji bazy danych strefy czasowej IANA, np. „2019a”. |