DateTime

Öffentliche Zeit (gelegentlich auch physische Zeit)

Dieser Typ kann auf unterschiedliche Art und Weise eine amtliche Zeit darstellen:

  • Wenn utcOffset festgelegt und timeZone nicht festgelegt ist: eine amtliche Zeit an einem Kalendertag mit einer bestimmten Abweichung von 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 wird relativ zum proleptischen gregorianischen Kalender angegeben.

Wenn Jahr, Monat oder Tag 0 sind, wird davon ausgegangen, dass es in DateTime kein bestimmtes Jahr, keinen bestimmten Monat oder Tag gibt.

Dieser Typ kann auch verwendet werden, um eine physische Zeit darzustellen, wenn alle Datums- und Uhrzeitfelder festgelegt und eine der Optionen time_offset festgelegt ist. Du kannst stattdessen „Timestamp“ für die physische Zeit verwenden. Wenn Sie auch die Zeitzone des Nutzers speichern möchten, können Sie dies in einem anderen Feld tun.

Dieser Typ ist flexibler als einige Anwendungen. 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. Der Wert muss zwischen 1 und 9999 bzw. 0 liegen, wenn ein Datum/Uhrzeit ohne Jahr angegeben wird.

month

integer

Optional. Monat des Jahres. Der Wert muss zwischen 1 und 12 liegen. Sie kann auch 0 sein, wenn ein Datum/Uhrzeit ohne Monat angegeben wird.

day

integer

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

hours

integer

Optional. Stunden im 24-Stunden-Format. Sollte von 0 bis 23 sein. 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 von DateTime an. Treffen Sie eine sorgfältige Auswahl, da sich Zeitzonendaten in Zukunft ändern können. So werden beispielsweise die Start- und Enddaten von Ländern, in denen die Sommerzeit liegt, in einem Land geändert und Daten im zukünftigen Zeitraum wurden bereits gespeichert. Wenn keine Angabe gemacht wird, wird die Datum/Uhrzeit in Ortszeit angegeben. 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, sein. Ein UTC-Versatz von -4:00 würde z. B. als { Sekunden: -14.400 } dargestellt werden.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die mit "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".