DateTime

نشان دهنده زمان مدنی (یا گاهی اوقات زمان فیزیکی) است.

این نوع می تواند یک زمان مدنی را به یکی از چند روش ممکن نشان دهد:

  • وقتی utcOffset تنظیم شده است و timeZone تنظیم نشده است: یک زمان مدنی در یک روز تقویمی با یک افست خاص از UTC.
  • وقتی TimeZone تنظیم شده است و utcOffset تنظیم نشده است: یک زمان مدنی در یک روز تقویمی در یک منطقه زمانی خاص.
  • وقتی نه timeZone و نه utcOffset تنظیم نشده است: یک زمان مدنی در یک روز تقویمی به وقت محلی.

تاریخ نسبت به تقویم گرگوری پرولپتیک است.

اگر سال، ماه یا روز 0 باشد، DateTime به ترتیب سال، ماه یا روز خاصی ندارد.

اگر تمام فیلدهای تاریخ و زمان تنظیم شده باشند و هر کدام از موارد time_offset یکی از آنها تنظیم شده باشد، ممکن است برای نمایش زمان فیزیکی نیز استفاده شود. به جای آن از پیام Timestamp برای زمان فیزیکی استفاده کنید. اگر مورد استفاده شما همچنین می‌خواهد منطقه زمانی کاربر را ذخیره کند، می‌توانید در فیلد دیگری این کار را انجام دهید.

این نوع انعطاف پذیرتر از آن چیزی است که برخی از برنامه ها ممکن است بخواهند. اطمینان حاصل کنید که محدودیت های برنامه خود را مستند و تأیید کنید.

نمایندگی JSON
{
  "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.
}
زمینه های
year

integer

اختیاری. سال تاریخ. باید از 1 تا 9999 یا در صورت تعیین تاریخ بدون سال، 0 باشد.

month

integer

اختیاری. ماه سال. باید از 1 تا 12 یا در صورت تعیین تاریخ بدون ماه، 0 باشد.

day

integer

اختیاری. روز ماه. باید از 1 تا 31 باشد و برای سال و ماه معتبر باشد، یا در صورت تعیین تاریخ بدون روز، 0 باشد.

hours

integer

اختیاری. ساعات روز در قالب 24 ساعته. باید از 0 تا 23، پیش‌فرض روی 0 (نیمه شب) باشد. یک API ممکن است برای سناریوهایی مانند زمان بسته شدن کسب و کار، مقدار "24:00:00" را مجاز کند.

minutes

integer

اختیاری. دقیقه از ساعت روز. باید از 0 تا 59 باشد، پیش‌فرض 0 باشد.

seconds

integer

اختیاری. ثانیه های دقیقه از زمان. معمولاً باید از 0 تا 59 باشد، به طور پیش‌فرض 0 باشد. اگر API به ثانیه‌های کبیسه اجازه دهد، ممکن است مقدار 60 را مجاز کند.

nanos

integer

اختیاری. کسری از ثانیه در نانوثانیه. باید از 0 تا 999,999,999 باشد، پیش‌فرض 0 باشد.

میدان اتحادیه time_offset . اختیاری. افست UTC یا منطقه زمانی DateTime را مشخص می کند. با توجه به اینکه داده‌های منطقه زمانی ممکن است در آینده تغییر کند، بین آن‌ها با دقت انتخاب کنید (برای مثال، یک کشور تاریخ‌های شروع/پایان DST خود را تغییر می‌دهد و تاریخ‌های آینده در محدوده تحت تأثیر قبلاً ذخیره شده است). اگر حذف شود، DateTime به وقت محلی در نظر گرفته می شود. time_offset تنها می تواند یکی از موارد زیر باشد:
utcOffset

string ( Duration format)

افست UTC. باید ثانیه های کامل، بین -18 ساعت و +18 ساعت باشد. به عنوان مثال، یک افست UTC از -4:00 به صورت { ثانیه: -14400 } نشان داده می شود.

مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' s ' ختم می شود. مثال: "3.5s" .

timeZone

object ( TimeZone )

منطقه زمانی.

منطقه زمانی

یک منطقه زمانی را از پایگاه داده منطقه زمانی IANA نشان می دهد.

نمایندگی JSON
{
  "id": string,
  "version": string
}
زمینه های
id

string

منطقه زمانی پایگاه داده منطقه زمانی IANA، به عنوان مثال "America/New_York".

version

string

اختیاری. شماره نسخه پایگاه داده منطقه زمانی IANA، به عنوان مثال "2019a".