تمثّل هذه السمة الوقت المدني (أو الوقت الفعلي أحيانًا).
يمكن أن يمثل هذا النوع وقتًا مدنيًا بإحدى الطرق القليلة المحتملة:
- عند ضبط utcOffset وعدم ضبط السمة timeZone: وقت مدني في يوم تقويمي مع إزاحة معيّنة من التوقيت العالمي المنسَّق (UTC).
- عند ضبط المنطقة الزمنية وعدم ضبط utcOffset: وقت مدني في يوم تقويمي في منطقة زمنية معيّنة.
- عند عدم ضبط timeZone أو utcOffset: وقت مدني في يوم تقويمي بالتوقيت المحلي.
يرتبط التاريخ بالتقويم الميلادي الصحيح.
وإذا كانت قيمة السنة أو الشهر أو اليوم 0، لا يتم اعتبار التاريخ والوقت ليس له سنة أو شهر أو يوم معيّن على التوالي.
يمكن استخدام هذا النوع أيضًا لتمثيل وقت فعلي في حال ضبط جميع حقلَي التاريخ والوقت وتم ضبط إحدى حالتَي 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 (منتصف الليل). قد تختار واجهة برمجة التطبيقات السماح بالقيمة "24:00:00" لسيناريوهات مثل موعد إغلاق العمل. |
minutes |
اختياريّ. دقائق من ساعات اليوم. يجب أن تتراوح القيمة بين 0 و59، ويتم ضبط القيمة التلقائية على 0. |
seconds |
اختياريّ. ثواني الدقائق من الوقت. يجب أن تتراوح القيمة عادةً بين 0 و59، ويتم ضبط القيمة التلقائية على 0. وقد تسمح واجهة برمجة التطبيقات بالقيمة 60 إذا كانت تسمح بالثواني الكبيسة. |
nanos |
اختياريّ. الكسور من الثواني بالنانو ثانية. يجب أن تتراوح القيمة بين 0 و999,999,999، ويتم ضبط القيمة التلقائية على 0. |
حقل الاتحاد time_offset . اختياريّ. تحدّد إما معادلة التوقيت العالمي المنسق (UTC) أو المنطقة الزمنية للتاريخ والوقت. اختَر بينهما بعناية، مع الأخذ في الاعتبار أنّ بيانات المنطقة الزمنية قد تتغير في المستقبل (على سبيل المثال، يعدِّل أحد البلدان تواريخ البدء/الانتهاء لتوقيت DST، في حين أنّه سبق أن تم تخزين التواريخ الزمنية المستقبلية في النطاق المتأثرة). وإذا تم حذفها، يتم اعتبار التاريخ والوقت بالتوقيت المحلي. يمكن أن يكون time_offset واحدًا فقط مما يلي: |
|
utcOffset |
معادلة التوقيت العالمي المنسَّق (UTC) يجب أن تكون المدة ثوانٍ كاملة، بين -18 ساعة و+18 ساعة. على سبيل المثال، سيتم تمثيل معادلة التوقيت العالمي المنسَّق (UTC) -4:00 على النحو التالي: { seconds: -14400 }. مدة بالثواني مكونة من تسعة أرقام كسور كحد أقصى وتنتهي بالأرقام " |
timeZone |
المنطقة الزمنية. |
TimeZone
تمثل هذه السمة منطقة زمنية من قاعدة بيانات المنطقة الزمنية IANA.
تمثيل JSON |
---|
{ "id": string, "version": string } |
الحقول | |
---|---|
id |
المنطقة الزمنية لقاعدة بيانات المنطقة الزمنية التي منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة)، مثل: "أمريكا/نيويورك". |
version |
اختياريّ. رقم إصدار قاعدة بيانات المنطقة الزمنية الصادر عن IANA (المنظمة المعنية بأرقام الإنترنت المخصصة)، مثلاً "2019a". |