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 المستقبلية في النطاق المتأثّر). في حال عدم توفّرها، يُفترض أنّ DateTime بالتوقيت المحلي. يمكن أن تكون time_offset إحدى القيم التالية فقط:
utcOffset

string (Duration format)

فارق التوقيت عن التوقيت العالمي المتفق عليه يجب أن تكون القيمة عددًا صحيحًا من الثواني، بين -18 ساعة و+18 ساعة. على سبيل المثال، سيتم تمثيل إزاحة التوقيت العالمي المنسق (UTC) بمقدار ‎-4:00 على النحو التالي: { seconds: -14400 }.

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

timeZone

object (TimeZone)

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