DateTime

تمثّل هذه السمة الوقت المدني (أو الوقت الفعلي أحيانًا).

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

  • عند ضبط 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 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. اختياريّ. تحدّد إما معادلة التوقيت العالمي المنسق (UTC) أو المنطقة الزمنية للتاريخ والوقت. اختَر بينهما بعناية، مع الأخذ في الاعتبار أنّ بيانات المنطقة الزمنية قد تتغير في المستقبل (على سبيل المثال، يعدِّل أحد البلدان تواريخ البدء/الانتهاء لتوقيت DST، في حين أنّه سبق أن تم تخزين التواريخ الزمنية المستقبلية في النطاق المتأثرة). وإذا تم حذفها، يتم اعتبار التاريخ والوقت بالتوقيت المحلي. يمكن أن يكون time_offset واحدًا فقط مما يلي:
utcOffset

string (Duration format)

معادلة التوقيت العالمي المنسَّق (UTC) يجب أن تكون المدة ثوانٍ كاملة، بين -18 ساعة و+18 ساعة. على سبيل المثال، سيتم تمثيل معادلة التوقيت العالمي المنسَّق (UTC) -4:00 على النحو التالي: { seconds: -14400 }.

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

timeZone

object (TimeZone)

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

TimeZone

تمثل هذه السمة منطقة زمنية من قاعدة بيانات المنطقة الزمنية IANA.

تمثيل JSON
{
  "id": string,
  "version": string
}
الحقول
id

string

المنطقة الزمنية لقاعدة بيانات المنطقة الزمنية التي منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة)، مثل: "أمريكا/نيويورك".

version

string

اختياريّ. رقم إصدار قاعدة بيانات المنطقة الزمنية الصادر عن IANA (المنظمة المعنية بأرقام الإنترنت المخصصة)، مثلاً "2019a".