DateTime

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

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

  • في حال ضبط utc Offset بدون ضبط المنطقة الزمنية، يشير هذا المصطلح إلى وقت مدني في يوم تقويمي بقيمة زاوية معيّنة عن التوقيت العالمي المنسَّق (UTC).
  • عند ضبط المنطقة الزمنية بدون ضبط utc Offset، يشير ذلك إلى وقت مدني في يوم تقويمي في منطقة زمنية معيّنة.
  • في حال عدم ضبط المنطقة الزمنية أو utc Offset: توقيت مدني في يوم تقويمي بالتوقيت المحلي

يرتبط التاريخ بالتقويم الميلادي المسبق البيئي.

إذا كانت السنة أو الشهر أو اليوم هي 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) أو المنطقة الزمنية للتاريخ والوقت. اختَر بينهما بعناية، مع الأخذ في الاعتبار أنّ بيانات المنطقة الزمنية قد تتغيّر في المستقبل (على سبيل المثال، إذا كان أحد البلدان يُعدّل تاريخَي البدء/الانتهاء بالتوقيت الصيفي، وأن تكون التواريخ الزمنية المستقبلية في النطاق المتأثّر قد تم تخزينها). وفي حال حذفه، يتم اعتبار التاريخ والوقت بالتوقيت المحلي. يمكن أن يكون الحقل "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".