DateTime

يمثّل الوقت المدني (أو الوقت الفعلي في بعض الأحيان).

يمكن أن يمثّل هذا النوع وقتًا مدنيًا بإحدى الطرق التالية:

  • عند ضبط utcOffset وعدم ضبط timeZone: وقت مدني في يوم تقويمي مع تمكين فرق زمني معيّن من التوقيت العالمي المنسق
  • عند ضبط timeZone وعدم ضبط utcOffset: وقت مدني في يوم تقويمي في منطقة زمنية معيّنة
  • في حال عدم ضبط timeZone أو utcOffset: وقت مدني في يوم تقويمي بالتوقيت المحلي

التاريخ نسبي إلى التقويم الغريغوري المعدل.

إذا كانت السنة أو الشهر أو اليوم تساوي 0، يُعتبر أنّ DateTime لا يتضمّن سنة أو شهرًا أو يومًا محدّدًا على التوالي.

يمكن أيضًا استخدام هذا النوع لتمثيل وقت فعلي في حال ضبط جميع حقول التاريخ والوقت وضبط أي حالة من حالات time_offset oneof. ننصحك باستخدام رسالة 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 (منتصف الليل). قد تختار واجهة برمجة التطبيقات السماح بالقيمة "24:00:00" لسيناريوهات مثل وقت إغلاق النشاط التجاري.

minutes

integer

اختياريّ. دقائق الساعة من اليوم يجب أن تتراوح بين 0 و59، ويكون الإعداد التلقائي هو 0.

seconds

integer

اختياريّ. الثواني من الدقائق في الوقت يجب أن تتراوح القيمة عادةً بين 0 و59، ويتم ضبطها تلقائيًا على 0. قد تسمح واجهة برمجة التطبيقات بالقيمة 60 إذا كانت تسمح بالثواني الكبيسة.

nanos

integer

اختياريّ. أجزاء من الثانية بالنانوثواني يجب أن تتراوح بين 0 و999,999,999، وتكون القيمة التلقائية هي 0.

حقل الربط time_offset اختياريّ. تُستخدَم لتحديد إما التوقيت العالمي المنسّق أو المنطقة الزمنية لـ DateTime. عليك الاختيار بعناية بين الخيارَين، مع الأخذ في الاعتبار أنّ بيانات المنطقة الزمنية قد تتغيّر في المستقبل (على سبيل المثال، يغيّر بلد ما تواريخ بدء/انتهاء التوقيت الصيفي، وقد سبق تخزين تواريخ/أوقات مستقبلية في النطاق المتأثّر). في حال حذف هذه السمة، يتم اعتبار أنّ التاريخ والوقت بالتوقيت المحلي. يمكن أن يكون time_offset واحدًا فقط مما يلي:
utcOffset

string (Duration format)

فارق الوقت عن التوقيت العالمي المنسَّق يجب أن تكون ثوانٍ كاملة، ويجب أن تتراوح بين -18 ساعة و18 ساعة. على سبيل المثال، يتم تمثيل التوقيت العالمي المنسَّق الذي يسبق التوقيت المحلي بـ 4:00 على النحو التالي: { seconds: -14400 }.

المدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ "s". مثال: "3.5s".

timeZone

object (TimeZone)

المنطقة الزمنية