DateTime

Steht für die amtliche Zeit (oder gelegentlich in physischer Zeit).

Dieser Typ kann eine amtliche Zeit auf eine von mehreren möglichen Arten darstellen:

  • Wenn „utcOffset“ festgelegt und die Zeitzone nicht festgelegt ist: eine amtliche Zeit an einem Kalendertag mit einem bestimmten Offset von UTC.
  • Wenn „timeZone“ festgelegt und „utcOffset“ nicht konfiguriert ist: eine amtliche Zeit an einem Kalendertag in einer bestimmten Zeitzone.
  • Wenn weder timeZone noch utcOffset festgelegt sind: eine amtliche Zeit an einem Kalendertag in Ortszeit.

Das Datum wird relativ zum proleptischen gregorianischen Kalender angegeben.

Wenn Jahr, Monat oder Tag 0 sind, wird davon ausgegangen, dass DateTime kein bestimmtes Jahr, Monat oder Tag hat.

Dieser Typ kann auch für eine physische Uhrzeit verwendet werden, wenn alle Datums- und Uhrzeitfelder festgelegt sind und entweder die Groß-/Kleinschreibung des time_offset-oneof festgelegt ist. Du kannst die Nachricht „Timestamp“ stattdessen für physische Termine verwenden. Wenn in Ihrem Anwendungsfall auch die Zeitzone des Nutzers gespeichert werden soll, ist dies in einem anderen Feld möglich.

Dieser Typ ist flexibler, als manche Anwendungen es möchten. 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. Muss zwischen 1 und 9999 liegen oder 0, wenn Datum und Uhrzeit ohne Jahr angegeben werden.

month

integer

Optional. Monat des Jahres. Muss zwischen 1 und 12 liegen oder 0, wenn für Datum und Uhrzeit kein 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 ein Datum und eine Uhrzeit ohne Tag angegeben werden.

hours

integer

Optional. Stunden im 24-Stunden-Format. Sollte zwischen 0 und 23 liegen, wird standardmäßig 0 (Mitternacht) verwendet. 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 von DateTime an. Treffen Sie die Auswahl sorgfältig, da sich die Zeitzonendaten in Zukunft ändern können (z. B. ändert ein Land das Start- und Enddatum der Sommerzeit und künftige DateTimes im betroffenen Zeitraum wurden bereits gespeichert). Wenn keine Angabe gemacht wird, gilt für „DateTime“ die Ortszeit. Für time_offset ist nur einer der folgenden Werte zulässig:
utcOffset

string (Duration format)

UTC-Versatz. Muss ganze Sekunden sein und muss zwischen -18 und +18 Stunden liegen. Eine UTC-Abweichung von -4:00 wird 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

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".