DateTime

Zivile Zeit (oder gelegentlich physische Zeit) steht.

Dabei gibt es mehrere Möglichkeiten, eine zivilrechtliche Zeit darzustellen:

  • Wenn „utcOffset“ und „timeZone“ nicht festgelegt ist: eine offizielle Uhrzeit an einem Kalendertag mit einer bestimmten UTC-Abweichung.
  • Wenn „timeZone“ festgelegt und „utcOffset“ nicht festgelegt ist: eine offizielle Uhrzeit an einem Kalendertag in einer bestimmten Zeitzone.
  • Wenn weder „timeZone“ noch „utcOffset“ festgelegt ist: eine offizielle Uhrzeit an einem Kalendertag in Ortszeit.

Das Datum wird relativ zum proleptischen gregorianischen Kalender angegeben.

Wenn Jahr, Monat oder Tag 0 ist, wird davon ausgegangen, dass das Datum/Uhrzeit kein bestimmtes Jahr, Monat oder Tag hat.

Dieser Typ kann auch zur Darstellung einer physischen Zeit verwendet werden, wenn alle Datums- und Uhrzeitfelder festgelegt sind und in beiden Fällen der Wert time_offset festgelegt ist. Verwenden Sie stattdessen die Nachricht „Timestamp“ für physische Zeit. Wenn in Ihrem Anwendungsfall auch die Zeitzone des Nutzers gespeichert werden soll, können Sie dies in einem anderen Feld tun.

Dieser Typ ist flexibler, als manche Anwendungen möglicherweise wünschen. Achten Sie darauf, die Einschränkungen Ihrer Anwendung zu dokumentieren und zu validieren.

JSON-Darstellung
{
  "year": integer,
  "month": integer,
  "day": integer,
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer,

  // Union field time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
Felder
year

integer

Optional. Jahr des Datums. Muss zwischen 1 und 9999 liegen oder 0 sein, wenn Datum/Uhrzeit ohne Jahr angegeben wird.

month

integer

Optional. Monat des Jahres. Muss zwischen 1 und 12 liegen oder 0 sein, wenn Datum/Uhrzeit ohne Monat angegeben wird.

day

integer

Optional. Tag des Monats. Muss zwischen 1 und 31 liegen und für das Jahr und den Monat gültig sein oder 0, wenn Datum/Uhrzeit ohne Tag angegeben wird.

hours

integer

Optional. Stunden im 24-Stunden-Format. Muss zwischen 0 und 23 liegen, der Standardwert ist 0 (Mitternacht). Eine API kann den Wert "24:00:00" für Szenarien wie Geschäftsschlusszeit zulassen.

minutes

integer

Optional. Minuten der Zeitangabe. Muss zwischen 0 und 59 liegen, der Standardwert ist 0.

seconds

integer

Optional. Sekunden der Zeitangabe. Muss normalerweise zwischen 0 und 59 liegen, der Standardwert ist 0. Eine API kann den Wert 60 zulassen, wenn sie Schaltsekunden zulässt.

nanos

integer

Optional. Sekundenbruchteile in Nanosekunden. Muss zwischen 0 und 999.999.999 liegen, der Standardwert ist 0.

Union-Feld time_offset. Optional. Gibt entweder die UTC-Abweichung oder die Zeitzone von DateTime an. Treffen Sie eine sorgfältige Auswahl. Berücksichtigen Sie dabei, dass sich die Zeitzonendaten in Zukunft ändern können (z. B. ändert sich in einem Land das Start- und Enddatum für die Sommerzeit, während die zukünftigen DateTimes im betroffenen Zeitraum bereits gespeichert wurden). Wenn keine Angabe gemacht wird, wird Datum/Uhrzeit als Ortszeit verwendet. Für time_offset ist nur einer der folgenden Werte zulässig:
utcOffset

string (Duration format)

UTC-Versatz. Muss ganze Sekunden zwischen -18 und +18 Stunden betragen. Eine UTC-Abweichung von -4:00 wird beispielsweise als { seconds: -14400 } dargestellt.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die auf „s“ endet. Beispiel: "3.5s".

timeZone

object (TimeZone)

Zeitzone.

TimeZone

Stellt eine Zeitzone aus der IANA-Zeitzonendatenbank dar.

JSON-Darstellung
{
  "id": string,
  "version": string
}
Felder
id

string

Zeitzone aus der IANA-Zeitzonendatenbank, z. B. "Amerika/New_York".

version

string

Optional. Versionsnummer der IANA-Zeitzonendatenbank, z. B. "2019a".