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

اختیاری. سال تاریخ. باید از ۱ تا ۹۹۹۹ باشد، یا در صورت مشخص کردن تاریخ و زمان بدون سال، ۰ باشد.

month

integer

اختیاری. ماه سال. باید از ۱ تا ۱۲ باشد، یا در صورت مشخص کردن تاریخ و زمان بدون ماه، ۰ باشد.

day

integer

اختیاری. روز ماه. باید از ۱ تا ۳۱ باشد و برای سال و ماه معتبر باشد، یا اگر تاریخ و زمان بدون روز مشخص می‌شود، ۰ باشد.

hours

integer

اختیاری. ساعات روز در قالب ۲۴ ساعته. باید از ۰ تا ۲۳ باشد، پیش‌فرض ۰ (نیمه‌شب). یک API ممکن است مقدار "۲۴:۰۰:۰۰" را برای سناریوهایی مانند زمان تعطیلی کسب‌وکار مجاز بداند.

minutes

integer

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

seconds

integer

اختیاری. ثانیه یا دقیقه. معمولاً باید از ۰ تا ۵۹ باشد، پیش‌فرض ۰ است. یک API در صورت امکان ثانیه کبیسه، می‌تواند مقدار ۶۰ را نیز مجاز بداند.

nanos

integer

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

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

string ( Duration format)

انحراف UTC. باید ثانیه‌های کامل، بین ۱۸- ساعت و ۱۸+ ساعت باشد. برای مثال، انحراف UTC از ۴-:۰۰ به صورت {seconds: -14400} نمایش داده می‌شود.

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

timeZone

object ( TimeZone )

منطقه زمانی.