نشان دهنده زمان مدنی (یا گاهی اوقات زمان فیزیکی) است.
این نوع می تواند یک زمان مدنی را به یکی از چند روش ممکن نشان دهد:
- وقتی 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 |
فیلدها | |
---|---|
year | اختیاری. سال تاریخ. باید از 1 تا 9999 یا در صورت تعیین تاریخ بدون سال، 0 باشد. |
month | اختیاری. ماه سال. باید از 1 تا 12 یا در صورت تعیین تاریخ بدون ماه، 0 باشد. |
day | اختیاری. روز ماه. باید از 1 تا 31 باشد و برای سال و ماه معتبر باشد، یا در صورت تعیین تاریخ بدون روز، 0 باشد. |
hours | اختیاری. ساعات روز در قالب 24 ساعته. باید از 0 تا 23، پیشفرض روی 0 (نیمه شب) باشد. یک API ممکن است برای سناریوهایی مانند زمان بسته شدن کسب و کار، مقدار "24:00:00" را مجاز کند. |
minutes | اختیاری. دقیقه از ساعت روز. باید از 0 تا 59 باشد، پیشفرض 0 باشد. |
seconds | اختیاری. ثانیه های دقیقه از زمان. معمولاً باید از 0 تا 59 باشد، به طور پیشفرض 0 باشد. اگر API به ثانیههای کبیسه اجازه دهد، ممکن است مقدار 60 را مجاز کند. |
nanos | اختیاری. کسری از ثانیه در نانوثانیه. باید از 0 تا 999,999,999 باشد، پیشفرض 0 باشد. |
میدان اتحادیه time_offset . اختیاری. افست UTC یا منطقه زمانی DateTime را مشخص می کند. با توجه به اینکه دادههای منطقه زمانی ممکن است در آینده تغییر کند، بین آنها با دقت انتخاب کنید (به عنوان مثال، یک کشور تاریخهای شروع/پایان DST خود را تغییر میدهد و تاریخهای آینده در محدوده تحت تأثیر قبلاً ذخیره شده است). اگر حذف شود، DateTime به وقت محلی در نظر گرفته می شود. time_offset تنها می تواند یکی از موارد زیر باشد: | |
utcOffset | افست UTC. باید ثانیه های کامل، بین -18 ساعت و +18 ساعت باشد. به عنوان مثال، یک افست UTC از -4:00 به صورت { ثانیه: -14400 } نشان داده می شود. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
timeZone | منطقه زمانی |
منطقه زمانی
یک منطقه زمانی را از پایگاه داده منطقه زمانی IANA نشان می دهد.
نمایندگی JSON |
---|
{ "id": string, "version": string } |
فیلدها | |
---|---|
id | منطقه زمانی پایگاه داده منطقه زمانی IANA، به عنوان مثال "America/New_York". |
version | اختیاری. شماره نسخه پایگاه داده منطقه زمانی IANA، به عنوان مثال "2019a". |