DateTime

Stellt die amtliche Zeit (oder gelegentlich die physische Zeit) dar.

Dieser Typ kann eine amtliche Zeit auf verschiedene Arten darstellen:

  • Wenn „utcOffset“ festgelegt und „timeZone“ nicht festgelegt ist: eine amtliche Zeit an einem Kalendertag mit einem bestimmten Versatz zu UTC.
  • Wenn „timeZone“ festgelegt und „utcOffset“ nicht festgelegt ist: eine amtliche Zeit an einem Kalendertag in einer bestimmten Zeitzone.
  • Wenn weder „timeZone“ noch „utcOffset“ festgelegt ist: eine amtliche Zeit an einem Kalendertag in Ortszeit.

Das Datum bezieht sich auf den proleptischen gregorianischen Kalender.

Wenn Jahr, Monat oder Tag 0 sind, wird davon ausgegangen, dass das DateTime-Objekt kein bestimmtes Jahr, keinen bestimmten Monat bzw. keinen bestimmten Tag hat.

Dieser Typ kann auch verwendet werden, um eine physische Zeit darzustellen, wenn alle Datums- und Zeitfelder festgelegt sind und einer der beiden Fälle von time_offset festgelegt ist. Verwenden Sie stattdessen die Timestamp-Nachricht für die physische Zeit. Wenn es in Ihrem Anwendungsfall wünschenswert ist, die Zeitzone des Nutzers ebenfalls zu speichern, können Sie das in einem anderen Feld tun.

Dieser Typ ist möglicherweise flexibler, als es für einige Anwendungen erwünscht ist. Dokumentieren und validieren Sie die Einschränkungen Ihrer Anwendung.

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. Es muss zwischen 1 und 9999 liegen oder kann 0 sein, wenn ein Datum/Uhrzeit-Element ohne Jahresangabe angegeben wird.

month

integer

Optional. Monat des Jahres. Er muss zwischen 1 und 12 liegen oder kann 0 sein, wenn ein Datum/Uhrzeit-Element ohne Monat angegeben wird.

day

integer

Optional. Tag des Monats. Er muss zwischen 1 und 31 liegen und für das Jahr und den Monat gültig sein. Er kann auch 0 sein, wenn ein Datum/Uhrzeit-Element ohne Tag angegeben wird.

hours

integer

Optional. Stunden im 24-Stunden-Format. Sollte 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 den UTC-Versatz oder die Zeitzone des DateTime an. Wählen Sie sorgfältig zwischen ihnen aus, da sich Zeitzonendaten in Zukunft ändern können (beispielsweise wenn ein Land die Start- und Enddaten der Sommerzeit ändert und zukünftige DateTimes im betroffenen Zeitraum bereits gespeichert wurden). Wird die DateTime weggelassen, wird davon ausgegangen, dass sie in der Ortszeit angegeben ist. Für time_offset ist nur einer der folgenden Werte zulässig:
utcOffset

string (Duration format)

UTC-Versatz. Muss eine ganze Zahl in Sekunden zwischen –18 Stunden und +18 Stunden sein. Ein UTC-Versatz von –4:00 würde beispielsweise als {seconds: –14400} dargestellt.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

timeZone

object (TimeZone)

Zeitzone.