Indeks
DateTime
Odzwierciedla czas cywilny (lub czas rzeczywisty).
Ten typ może przedstawiać czas cywilny na kilka sposobów:
- Gdy ustawiona jest wartość utc_offset, a strefa czasowa nie jest ustawiona: czas cywilny w dniu kalendarzowym z określoną przesunięciem względem czasu UTC.
- Gdy ustawiona jest strefa czasowa, a wartość utc_offset nie jest skonfigurowana: czas cywilny w dniu kalendarzowym w określonej strefie czasowej.
- Gdy nie ustawiono strefy czasowej ani utc_offset: czas cywilny w dniu kalendarzowym według czasu lokalnego.
Podana jest data według proleptycznego kalendarza gregoriańskiego.
Jeśli rok, miesiąc lub dzień mają wartość 0, funkcja DateTime jest uznawana za niezawierającą odpowiednio roku, miesiąca lub dnia.
Ten typ może też służyć do reprezentowania czasu fizycznego, jeśli ustawiono wszystkie pola daty i godziny oraz ustawiono opcję time_offset
. Zamiast tego rozważ użycie wiadomości Timestamp
w czasie rzeczywistym. Jeśli w Twoim przypadku ma być też przechowywana strefa czasowa użytkownika, możesz to zrobić w innym polu.
Ten typ jest bardziej elastyczny niż niektóre aplikacje. Pamiętaj, aby udokumentować i zweryfikować ograniczenia aplikacji.
Pola | |
---|---|
year |
Opcjonalnie. Rok daty. Należy podać wartość z zakresu od 1 do 9999 lub 0 w przypadku określania daty i godziny bez roku. |
month |
Opcjonalnie. Miesiąc roku. Należy podać wartość z zakresu od 1 do 12 lub 0 w przypadku określania daty i godziny bez miesiąca. |
day |
Opcjonalnie. Dzień miesiąca. Należy podać wartość z zakresu od 1 do 31 i prawidłową dla roku i miesiąca lub 0 w przypadku określenia daty i godziny bez dnia. |
hours |
Opcjonalnie. Godziny dnia w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23, a domyślna to 0 (północ). Interfejs API może zezwolić na wartość „24:00:00” w sytuacjach takich jak godzina zamknięcia firmy. |
minutes |
Opcjonalnie. Minuty w ciągu dnia. Wartość musi mieścić się w zakresie od 0 do 59, a domyślnie przyjmuje wartość 0. |
seconds |
Opcjonalnie. Sekundy minut czasu. Musi mieścić się w przedziale od 0 do 59, a domyślnie przyjmuje wartość 0. Interfejs API może zezwolić na wartość 60, jeśli zezwala na sekundy przestępne. |
nanos |
Opcjonalnie. Ułamki sekund w nanosekundach. Wartość musi mieścić się w zakresie od 0 do 999 999 999, a wartość domyślna to 0. |
Pole sumy time_offset . Opcjonalnie. Określa przesunięcie czasu UTC lub strefę czasową pola DateTime. Starannie wybierz je, biorąc pod uwagę fakt, że dane strefy czasowej mogą się zmienić w przyszłości (np. kraj zmieni daty rozpoczęcia i zakończenia czasu letniego, a przyszłe daty i godziny w odpowiednim zakresie są już przechowywane). W przypadku pominięcia tego argumentu, data i godzina są uznawane za czas lokalny. time_offset może być tylko jedną z tych wartości: |
|
utc_offset |
Opóźnienie UTC. Musi to być pełne sekundy, z zakresu od -18 godzin do +18 godzin. Na przykład przesunięcie względem czasu UTC o -4:00 będzie przedstawiane jako { seconds: -14400 }. |
time_zone |
Strefa czasowa. |
TimeOfDay
Reprezentuje porę dnia. Data i strefa czasowa są nieistotne lub zostały określone w innym miejscu. Interfejs API może zezwolić na sekundy przestępne. Powiązane typy: google.type.Date
i google.protobuf.Timestamp
.
Pola | |
---|---|
hours |
Godziny dnia w formacie 24-godzinnym. Wartość powinna mieścić się w zakresie od 0 do 23. Interfejs API może zezwolić na wartość „24:00:00” w sytuacjach takich jak godzina zamknięcia firmy. |
minutes |
Minuty w ciągu dnia. Wartość musi mieścić się w przedziale od 0 do 59. |
seconds |
Sekundy minut czasu. Wartość musi mieścić się w przedziale od 0 do 59. Interfejs API może zezwolić na wartość 60, jeśli zezwala na sekundy przestępne. |
nanos |
Ułamki sekund w nanosekundach. Wartość musi mieścić się w przedziale od 0 do 999 999 999. |
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”. |