DateTime

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

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

  • عند تعيين utcOffset مع عدم تعيين timeZone: وقت مدني في يوم من التقويم مع إزاحة معينة من UTC.
  • عند تعيين timeZone مع عدم تعيين utcOffset: وقت مدني في يوم من التقويم في منطقة زمنية معينة.
  • عند عدم تعيين TimeZone أو utcOffset: وقت مدني في يوم تقويمي بالتوقيت المحلي.

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

إذا كانت السنة أو الشهر أو اليوم صفرًا، فإن التاريخ والوقت لا يتضمن عامًا أو شهرًا أو يومًا محددًا على التوالي.

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

string (Duration format)

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

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

timeZone

object (TimeZone)

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

TimeZone

يمثل منطقة زمنية من قاعدة بيانات المناطق الزمنية (IANA).

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

string

المنطقة الزمنية لقاعدة بيانات IANA الزمنية، مثل "America/New_York".

version

string

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