DateTime

Medeni zamanı (veya bazen fiziksel zamanı) temsil eder.

Bu tür, toplumsal bir süreyi birkaç olası şekilde temsil edebilir:

  • utcOffset ayarlandığında ve saat dilimi ayarlanmadan bırakıldığında: Bir takvim gününde UTC ile belirli bir uzaklığa sahip günlük saat.
  • Saat dilimi ayarlandığında ve utcOffset ayarı ayarlanmadan bırakılırsa: Belirli bir saat dilimindeki bir takvim gününde medeni saat.
  • Saat Dilimi veya utcOffset ayarlanmadığında: Yerel saatteki bir takvim gününde günlük saat.

Tarih, Proleptik Miladi Takvime göredir.

Yıl, ay veya gün 0 ise DateTime'ın sırasıyla belirli bir yıl, ay veya gün olmadığı kabul edilir.

Bu tür, tüm tarih ve saat alanlarının ayarlanması ve time_offset için bir ayarın ayarlanması durumunda fiziksel bir zamanı göstermek için de kullanılabilir. Bunun yerine fiziksel zaman için Timestamp mesajı kullanabilirsiniz. Kullanım alanınız kullanıcının saat dilimini de kaydetmek istiyorsa bu işlem başka bir alanda yapılabilir.

Bu tür, bazı uygulamaların isteyebileceğinden daha esnektir. Başvurunuzun sınırlarını belgeleyip doğruladığınızdan emin olun.

JSON gösterimi
{
  "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.
}
Alanlar
year

integer

İsteğe bağlı. Tarih yılı. 1 ile 9999 arasında olmalıdır. Yıl içermeyen bir tarih ve saat belirtilmişse 0 değer girilmelidir.

month

integer

İsteğe bağlı. Yılın ayı. 1 ile 12 arasında olmalıdır. Ay içermeyen bir tarih ve saat belirtiliyorsa 0 değeri girilmelidir.

day

integer

İsteğe bağlı. Ayın günü. 1 ile 31 arasında bir değer olmalı ve yıl ve ay için geçerlidir. Tarih, gün içermeyen bir tarih ve saat belirtiyorsa bu değer 0 olmalıdır.

hours

integer

İsteğe bağlı. 24 saat biçiminde günün saatleri. 0 ile 23 arasında olmalıdır; varsayılan olarak 0 (gece yarısı) değerine ayarlanır. Bir API, "24:00:00" değerine izin vermeyi seçebilir. gibi senaryolar için oldukça yararlı olabilir.

minutes

integer

İsteğe bağlı. Günün saatindeki dakikalar. 0 ile 59 arasında olmalıdır. Varsayılan değer 0'dır.

seconds

integer

İsteğe bağlı. Saniye cinsinden dakika. Normalde 0 ile 59 arasında olmalıdır; varsayılan değer 0'dır. Bir API, artık saniyeye izin veriyorsa 60 değerine izin verebilir.

nanos

integer

İsteğe bağlı. Nanosaniye cinsinden saniyenin kesirleri. 0 ile 999.999.999 arasında bir değer olmalıdır. Varsayılan değer 0'dır.

Birleştirme alanı time_offset. İsteğe bağlı. UTC farkını veya DateTime'ın saat dilimini belirtir. Saat dilimi verilerinin gelecekte değişebileceğini (örneğin, bir ülkenin YS başlangıç/bitiş tarihlerini değiştirmesi ve etkilenen aralıktaki gelecekteki DateTime'ların zaten saklanmış olması) göz önünde bulundurularak bunlar arasında dikkatlice seçim yapın. Atlanırsa, DateTime öğesinin yerel saatte olduğu kabul edilir. time_offset şunlardan yalnızca biri olabilir:
utcOffset

string (Duration format)

UTC farkı. Tam saniye olmalıdır, -18 saat ile +18 saat arasında olmalıdır. Örneğin, -4:00'lık bir UTC saat farkı, { seconds: -14400 } olarak temsil edilir.

En fazla dokuz kesir basamağı olan ve "s" ile biten, saniye cinsinden süre. Örnek: "3.5s".

timeZone

object (TimeZone)

Saat dilimi.

TimeZone

IANA Saat Dilimi Veritabanı'ndan bir saat dilimini temsil eder.

JSON gösterimi
{
  "id": string,
  "version": string
}
Alanlar
id

string

IANA Saat Dilimi Veritabanı saat dilimi, ör. "Amerika/New_York".

version

string

İsteğe bağlı. IANA Saat Dilimi Veritabanı sürüm numarası, ör. "2019a".