Indeks
DateTime
Reprezentuje czas cywilny (lub czasem czas fizyczny).
Ten typ może reprezentować czas cywilny na jeden z kilku możliwych sposobów:
- Gdy parametr utc_offset jest ustawiony, a parametr time_zone nie jest ustawiony: czas cywilny w danym dniu kalendarzowym z określoną różnicą czasową względem UTC.
- Gdy parametr time_zone jest ustawiony, a parametr utc_offset nie jest ustawiony: czas cywilny w danym dniu kalendarzowym w danej strefie czasowej.
- Jeśli ani parametr time_zone, ani parametr utc_offset nie są ustawione: czas cywilny w danym 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, przyjmuje się, że parametr DateTime nie ma odpowiednio 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.
| Pola | |
|---|---|
year |
Opcjonalnie: Rok. Musi być w zakresie od 1 do 9999 lub 0, jeśli podajesz 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. Wartość musi mieścić się w przedziale od 1 do 31 i musi być prawidłowa dla roku i miesiąca. Jeśli podajesz datę i godzinę bez dnia, wartość musi wynosić 0. |
hours |
Opcjonalnie: Godziny w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23. Domyślnie jest ustawiana 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 w godzinie. Musi mieścić się w przedziale od 0 do 59. Domyślna wartość 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 przyszłe daty i godziny będą już zapisane w zakresie, którego dotyczy zmiana). Jeśli nie podasz tej wartości, DateTime zostanie uznany za czas lokalny. time_offset może mieć tylko jedną z tych wartości: |
|
utc_ |
przesunięcie względem czasu UTC. Musi być podana w całych sekundach w zakresie od –18 do +18 godzin. Na przykład przesunięcie w czasie UTC wynoszącym –4:00 zostanie przedstawione jako { s: -14400 }. |
time_ |
Strefa czasowa. |
TimeOfDay
Przedstawia porę dnia. Data i strefa czasowa są nieistotne lub zostały określone w innym miejscu. Interfejs API może zezwalać na sekundy przesunięte. Powiązane typy to google.type.Date i google.protobuf.Timestamp.
| Pola | |
|---|---|
hours |
Godziny w formacie 24-godzinnym. Musi być równa lub większa niż 0, a zazwyczaj nie może być większa niż 23. Interfejs API może zezwolić na wartość „24:00:00” w przypadku scenariuszy takich jak godziny zamknięcia firmy. |
minutes |
Minuty godziny. Wartość nie może być mniejsza niż 0 i nie może być większa niż 59. |
seconds |
sekundy. Wartość musi być większa lub równa 0 i zwykle musi być mniejsza lub równa 59. Interfejs API może akceptować wartość 60, jeśli zezwala na użycie sekund przestępnych. |
nanos |
Ułamki sekundy w nanosekundach. Musi być równa lub większa niż 0 i nie mniejsza niż 999 999 999. |
TimeZone
Reprezentuje strefę czasową z bazy danych stref czasowych IANA.
| Pola | |
|---|---|
id |
Strefa czasowa z bazy danych stref czasowych IANA, np. „America/New_York”. |
version |
Opcjonalnie: Numer wersji bazy danych stref czasowych IANA, np. „2019a”. |