الفرق بين المراجعتين لصفحة: «Python/datetime/time»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>datetime.time()‎</code> في بايثون}}</noinclude> يمثّل كائن time الوقت (المحلّي) في يوم غ...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الصنف <code>datetime.time()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الصنف <code>datetime.time()‎</code> في بايثون}}</noinclude>


يمثّل كائن time الوقت (المحلّي) في يوم غير محدّد، وهو عرضة للتعديل بواسطة كائن tzinfo.
يمثّل كائن <code>time</code> الوقت (المحلّي) في يوم غير محدّد، وهو عرضة للتعديل بواسطة [[Python/datetime/tzinfo|كائن <code>tzinfo</code>]].
 
==البنية العامة==
== البنية العامة ==
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
</syntaxhighlight>
</syntaxhighlight>
==المعاملات==
جميع المعاملات في عبارة إنشاء الصنف <code>time</code> اختيارية، وتأخذ القيمة الافتراضية <code>0</code>، ويأخذ المعامل <code>tzinfo</code> القيمة الافتراضية <code>None</code>.


== المعاملات ==
يمكن أن تكون قيم جميع المعاملات (باستثناء المعامل <code>tzinfo</code>) أعدادًا صحيحة وضمن المديات التالية:
جميع المعاملات في عبارة إنشاء الصنف time اختيارية، وتأخذ القيمة الافتراضية 0، ويأخذ المعامل tzinfo القيمة الافتراضية None.
*<code>‎0 <= hour < 24‎</code>
*<code>‎0 <= minute < 60‎</code>
*<code>‎0 <= second < 60‎</code>
*<code>‎0 <= microsecond < 1000000‎</code>
*<code>‎fold in [0, 1]‎</code>
تطلق اللغة الخطأ <code>ValueError</code> في حال كانت قيمة أحد المعاملات السابقة خارج النطاق المحددّ له.
==خصائص الصنف time==
يقدّم الصنف time الخصائص التالية:


يمكن أن تكون قيم جميع المعاملات (باستثناء المعامل tzinfo) أعدادًا صحيحة وضمن المديات التالية:
<code>time.min</code>


* ‎0 <= hour < 24‎
أقل قيمة للوقت قابلة للتمثيل، <code>time(0, 0, 0, 0)‎</code>.
* ‎0 <= minute < 60‎
* ‎0 <= second < 60‎
* ‎0 <= microsecond < 1000000‎
* ‎fold in [0, 1].


تطلق اللغة الخطأ ValueError في حال كانت قيمة أحد المعاملات السابقة خارج النطاق المحددّ له.
<code>time.max</code>


== خصائص الصنف time ==
أقصى قيمة للوقت قابلة للتمثيل، <code>time(23, 59, 59, 999999)‎</code>.


يقدّم الصنف time الخصائص التالية:
<code>time.resolution</code>
time.min
 
أقل مقدار ممكن للفارق بين كائني <code>time</code> غير متساويين، <code>timedelta(microseconds=1)</code>‎، مع ملاحظة أنّ اللغة لا تدعم إجراء العمليات الحسابية على كائنات <code>time</code>.
==خصائص نسخة الصنف time==
<code>time.hour</code>


أقل قيمة للوقت قابلة للتمثيل، time(0, 0, 0, 0)‎.
الساعة ضمن المدى <code>0</code> إلى <code>23</code>.


time.max
<code>time.minute</code>


أقصى قيمة للوقت قابلة للتمثيل، time(23, 59, 59, 999999)‎.
الدقيقة ضمن المدى <code>0</code> إلى <code>59</code>.


time.resolution
<code>time.second</code>


أقل مقدار ممكن للفارق بين كائني time غير متساويين، timedelta(microseconds=1)‎، مع ملاحظة أنّ اللغة لا تدعم إجراء العمليات الحسابية على كائنات time.
الثانية ضمن المدى <code>0</code> إلى <code>59</code>.


== خصائص نسخة الصنف time ==
جزء من الثانية، ضمن المدى <code>0</code> إلى <code>999999</code>.


time.hour
<code>time.tzinfo</code>
الساعة ضمن المدى 0 إلى 23.


time.minute
الكائن المُمرّر كقيمة للمعامل <code>tzinfo</code> في الدالة البانية للكائن <code>time</code>، أو القيمة <code>None</code> إن كانت قيمة المعامل <code>tzinfo</code> الممرّرة هي <code>None</code>.
الدقيقة ضمن المدى 0 إلى 59.


time.second
<code>time.fold</code>
الثانية ضمن المدى 0 إلى 59.


جزء من الثانية، ضمن المدى 0 إلى 999999.
ضمن المدى <code>‎[0, 1]</code>‎. ويستخدم للتمييز بين أوقات الانقضاء الحقيقية wall times خلال فترة زمنية مكرّرة. (تحدث الفترة الزمنية المكرّرة عند تأخير الساعات في التوقيت الصيفي، أو عند إنقاص مقدار إزاحة منطقة معيّنة عن التوقيت العالمي المنسّق UTC لأسباب سياسية).


time.tzinfo
تمثل القيمة <code>0</code> التوقيت المتقدّم بين التوقيتين، والقيمة <code>1</code> التوقيت المتأخر بين التوقيتين ضمن نفس تمثيل وقت الانقضاء الحقيقي.
الكائن المُمرّر كقيمة للمعامل tzinfo في الدالة البانية للكائن time، أو القيمة None إن كانت قيمة المعامل tzinfo المرّرة هي None.


time.fold
ضمن المدى ‎[0, 1]‎. ويستخدم للتمييز بين أوقات الانقضاء الحقيقية wall times خلال فترة زمنية مكرّرة. (تحدث الفترة الزمنية المكرّرة عند تأخير الساعات في التوقيت الصيفي، أو عند إنقاص مقدار إزاحة منطقة معيّنة عن التوقيت العالمي المنسّق UTC لأسباب سياسية).
تمثل القيمة 0 التوقيت المتقدّم بين التوقيتين، والقيمة 1 التوقيت المتأخر بين التوقيتين ضمن نفس تمثيل وقت الانقضاء الحقيقي.
'''ملاحظة''': هذه الخاصية جديدة في الإصدار 3.6.
'''ملاحظة''': هذه الخاصية جديدة في الإصدار 3.6.


== عمليات الكائن time ==
يوضّح المثال التالي خصائص نسخة الصنف <code>time</code>:<syntaxhighlight lang="python3">
>>> from datetime import time
>>> t = time(12, 10, 30)
>>> t
datetime.time(12, 10, 30)
>>> print(t)
12:10:30
>>> t.second
30
>>> t.hour
12
>>> t.minute
10
>>> t.microsecond
0
</syntaxhighlight>
==عمليات الكائن <code>time</code>==
*يمكن المقارنة بين كائن وقت وآخر، ويعدّ الكائن <code>a</code> أصغر من الكائن <code>b</code> إن كان الأول سابقًا للثاني في الوقت. إن كان أحد الكائنين بسيطًا naive وكان الآخر واعيًا، فإنّ اللغة تطلق الخطأ <code>TypeError</code> إن جرت المقارنة الترتيب بين الكائنين. أما عند مقارنة المساواة بين كائني وقت، فإنّ نسخ الكائنات البسيطة لا تساوي أبداً نسخ الكائنات الواعية. إن كان كلا الكائنين واعيين، وكانت خاصية <code>tzinfo</code> لكلّ منهما تحمل القيمة ذاتها، فإنّ اللغة تتجاهل خاصية <code>tzinfo</code> المشتركة بينهما، وتجري المقارنة على أساس الوقت. أما في حالة اختلاف قيمة خاصية <code>tzinfo</code>، فإنّ طرفي المقارنة يعدّلان في البداية بطرح مقدار إزاحتهما عن التوقيت العالمي المنسّق UTC (يحسب التابع <code>self.utcoffset()</code>‎ مقدار الإزاحة).  تُطلق اللغة الخطأ <code>TypeError</code> وذلك لمنع عملية المقارنة التي تُعقد بين أنواع مختلفة من التراجع fallback إلى عملية المقارنة الافتراضية والتي تُعقد حسب عنوان الكائن، وذلك عند إجراء المقارنة بين كائن الوقت وكائن من نوع آخر مختلف، تُستثنى من ذلك المقارنة باستخدام العاملين <code>==</code> و <code>‎!‎=</code>‎، حيث تعيد عملية المقارنة القيمتين <code>False</code> و <code>True</code> على التوالي.  '''ملاحظة''': في الإصدار 3.3 من اللغة، لا تطلق عملية مقارنة المساواة بين كائن بسيط وآخر واعٍ الخطأ <code>TypeError</code>.
 
*التقطيع، يمكن استخدام الكائن كمفتاح في [[Python/dict|قاموس]].
يحمل كائن <code>time</code> القيمة <code>True</code> دائمًا في السياقات المنطقية.


* المقارنة بين كائن وقت وآخر، حيث يعدّ الكائن a أقلّ من الكائن b إن كان الأول سابقًا للثاني في الوقت. إن كان أحد الكائنين بسيطًا naive وكان الآخر واعيًا، فإنّ اللغة تطلق الخطأ TypeError إن جرت المقارنة الترتيب بين الكائنين. أما عند مقارنة المساواة بين كائني وقت، فإنّ نسخ الكائنات البسيطة لا تساوي أبداً نسخ الكائنات الواعية.
'''ملاحظة''': قبل الإصدار 3.5 من بايثون، كان كائن <code>time</code> يحمل القيمة <code>false</code> إذا كان يمثّل منتصف الليل حسب التوقيت العالمي المنسّق. كان هذا السلوك سببًا في وقوع الالتباس وحدوث الأخطاء، وقد ألغي في الإصدار 3.5 من اللغة.


إن كان كلا الكائنين واعيين، وكانت خاصية tzinfo لكلّ منهما تحمل القيمة ذاتها، فإنّ اللغة تتجاهل خاصية tzinfo المشتركة بينهما، وتجري المقارنة على أساس الوقت. أما في حالة اختلاف قيمة خاصية tzinfo، فإنّ طرفي المقارنة يعدّلان في البداية بطرح مقدار إزاحتهما عن التوقيت العالمي المنسّق UTC (يحسب التابع self.utcoffset()‎ مقدار الإزاحة).
يبين المثال التالي مقارنة بسيطة بين كائني <code>time</code> مختلفين:<syntaxhighlight lang="python3">
>>> t1 = time(12, 10, 30)
>>> t2 = time(11, 9, 54)
>>> t1 == t2
False
>>> t1 < t2
False
>>> t1 > t2
True
</syntaxhighlight>
==دالة بانية أخرى==
يمكن إنشاء كائن <code>time</code> باستخدام الدالة البانية <code>time.fromisoformat()‎</code>.


تُطلق اللغة الخطأ TypeError وذلك لمنع عملية المقارنة التي تُعقد بين أنواع مختلفة من التراجع fallback إلى عملية المقارنة الافتراضية والتي تُعقد حسب عنوان الكائن، وذلك عند إجراء المقارنة بين كائن الوقت وكائن من نوع آخر مختلف، تُستثنى من ذلك المقارنة باستخدام العاملين == و !‎=‎، حيث تعيد عملية المقارنة القيمتين False و True على التوالي.
تعيد هذه الدالة البانية كائن <code>time</code> موافقة للمعامل <code>time_string</code> وهو عبارة عن [[Python/str|سلسلة نصية]]، ويُنسّق الكائن الجديد بواسطة أحد التنسيقات التي يقدّمها التابع <code>time.isofromat()</code>.


'''ملاحظة''': في الإصدار 3.3 من اللغة، لا تطلق عملية مقارنة المساواة بين كائن بسيط وآخر واعٍ الخطأ TypeError.
تدعم هذه الدالة السلاسل النصية ذات التنسيق:<syntaxhighlight lang="text">
HH[:MM[:SS[.mmm[mmm]]]][+HH:MM[:SS[.ffffff]]]
</syntaxhighlight>جدير بالذكر أنّ هذه الدالة لا تدعم تفسير سلاسل المعيار ISO 8601، وأنّ الهدف منها هو أداء الوظيفة المعاكسة للتابع <code>time.isofromat()‎</code>.


* التقطيع، يمكن استخدام الكائن كمفتاح في قاموس.
'''ملاحظة''': هذه الدالة جديدة في الإصدار 3.7 من اللغة.


* efficient pickling
== توابع نسخ الكائن <code>time</code> ==
تقدم نسخ الكائن <code>time</code> التوابع التالية:


يحمل كائن time القيمة True دائمًا في السياقات المنطقية.
===التابع <code>time.replace()‎</code>===
يستبدل التابع القيم المعطاة في المعاملات بالقيم الأصلية في كائن الوقت.


'''ملاحظة''': قبل الإصدار 3.5 من بايثون، كان كائن time يحمل القيمة false إذا كان يمثّل منتصف الليل حسب التوقيت العالمي المنسّق. كان هذا السلوك سببًا في وقوع الالتباس وحدوث الأخطاء، وقد ألغي في الإصدار 3.5 من اللغة.  
=== التابع <code>time.isoformat()‎</code> ===
يعيد التابع سلسلة نصية تمثّل الوقت بصيغة المعيار ISO 8601.


== دالة بانية أخرى ==
=== التابع <code>time.__str__()‎</code> ===
يمكن إنشاء كائن time باستخدام الدالة البانية time.fromisoformat()‎.


classmethod time.fromisoformat(time_string)
=== التابع <code>time.strftime()‎</code> ===
تعيد الدالة البانية كائن time موافقة للمعامل time_string وهو عبارة عن سلسلة نصية، ويُنسّق الكائن الجديد بواسطة أحد التنسيقات التي يقدّمها التابع time.isofromat()‎.


تدعم هذه الدالة السلاسل النصية ذات التنسيق
=== التابع <code>time.__format__()‎</code> ===
HH[:MM[:SS[.mmm[mmm]]]][+HH:MM[:SS[.ffffff]]].


جدير بالذكر أنّ هذه الدالة لا تدعم تفسير سلاسل المعيار ISO 8601، وأنّ الهدف منها هو إجراء العملية المعاكسة للتابع time.isofromat()‎.
=== التابع <code>time.utcoffset()‎</code> ===


'''ملاحظة''': هذه الدالة جديدة في الإصدار 3.7 من اللغة.
=== التابع <code>time.dst()‎</code> ===
== مصادر ==
 
[https://docs.python.org/3/library/datetime.html#time-objects قسم time Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.]
=== التابع <code>time.tzname()‎</code> ===


==مصادر==
* [https://docs.python.org/3/library/datetime.html#time-objects قسم time Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.]
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]
[[تصنيف:Python Modules]]

مراجعة 16:40، 2 يوليو 2018


يمثّل كائن time الوقت (المحلّي) في يوم غير محدّد، وهو عرضة للتعديل بواسطة كائن tzinfo.

البنية العامة

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

المعاملات

جميع المعاملات في عبارة إنشاء الصنف time اختيارية، وتأخذ القيمة الافتراضية 0، ويأخذ المعامل tzinfo القيمة الافتراضية None.

يمكن أن تكون قيم جميع المعاملات (باستثناء المعامل tzinfo) أعدادًا صحيحة وضمن المديات التالية:

  • ‎0 <= hour < 24‎
  • ‎0 <= minute < 60‎
  • ‎0 <= second < 60‎
  • ‎0 <= microsecond < 1000000‎
  • ‎fold in [0, 1]‎

تطلق اللغة الخطأ ValueError في حال كانت قيمة أحد المعاملات السابقة خارج النطاق المحددّ له.

خصائص الصنف time

يقدّم الصنف time الخصائص التالية:

time.min

أقل قيمة للوقت قابلة للتمثيل، time(0, 0, 0, 0)‎.

time.max

أقصى قيمة للوقت قابلة للتمثيل، time(23, 59, 59, 999999)‎.

time.resolution

أقل مقدار ممكن للفارق بين كائني time غير متساويين، timedelta(microseconds=1)‎، مع ملاحظة أنّ اللغة لا تدعم إجراء العمليات الحسابية على كائنات time.

خصائص نسخة الصنف time

time.hour

الساعة ضمن المدى 0 إلى 23.

time.minute

الدقيقة ضمن المدى 0 إلى 59.

time.second

الثانية ضمن المدى 0 إلى 59.

جزء من الثانية، ضمن المدى 0 إلى 999999.

time.tzinfo

الكائن المُمرّر كقيمة للمعامل tzinfo في الدالة البانية للكائن time، أو القيمة None إن كانت قيمة المعامل tzinfo الممرّرة هي None.

time.fold

ضمن المدى ‎[0, 1]‎. ويستخدم للتمييز بين أوقات الانقضاء الحقيقية wall times خلال فترة زمنية مكرّرة. (تحدث الفترة الزمنية المكرّرة عند تأخير الساعات في التوقيت الصيفي، أو عند إنقاص مقدار إزاحة منطقة معيّنة عن التوقيت العالمي المنسّق UTC لأسباب سياسية).

تمثل القيمة 0 التوقيت المتقدّم بين التوقيتين، والقيمة 1 التوقيت المتأخر بين التوقيتين ضمن نفس تمثيل وقت الانقضاء الحقيقي.

ملاحظة: هذه الخاصية جديدة في الإصدار 3.6.

يوضّح المثال التالي خصائص نسخة الصنف time:

>>> from datetime import time
>>> t = time(12, 10, 30)
>>> t
datetime.time(12, 10, 30)
>>> print(t)
12:10:30
>>> t.second
30
>>> t.hour
12
>>> t.minute
10
>>> t.microsecond
0

عمليات الكائن time

  • يمكن المقارنة بين كائن وقت وآخر، ويعدّ الكائن a أصغر من الكائن b إن كان الأول سابقًا للثاني في الوقت. إن كان أحد الكائنين بسيطًا naive وكان الآخر واعيًا، فإنّ اللغة تطلق الخطأ TypeError إن جرت المقارنة الترتيب بين الكائنين. أما عند مقارنة المساواة بين كائني وقت، فإنّ نسخ الكائنات البسيطة لا تساوي أبداً نسخ الكائنات الواعية. إن كان كلا الكائنين واعيين، وكانت خاصية tzinfo لكلّ منهما تحمل القيمة ذاتها، فإنّ اللغة تتجاهل خاصية tzinfo المشتركة بينهما، وتجري المقارنة على أساس الوقت. أما في حالة اختلاف قيمة خاصية tzinfo، فإنّ طرفي المقارنة يعدّلان في البداية بطرح مقدار إزاحتهما عن التوقيت العالمي المنسّق UTC (يحسب التابع self.utcoffset()‎ مقدار الإزاحة). تُطلق اللغة الخطأ TypeError وذلك لمنع عملية المقارنة التي تُعقد بين أنواع مختلفة من التراجع fallback إلى عملية المقارنة الافتراضية والتي تُعقد حسب عنوان الكائن، وذلك عند إجراء المقارنة بين كائن الوقت وكائن من نوع آخر مختلف، تُستثنى من ذلك المقارنة باستخدام العاملين == و ‎!‎=‎، حيث تعيد عملية المقارنة القيمتين False و True على التوالي. ملاحظة: في الإصدار 3.3 من اللغة، لا تطلق عملية مقارنة المساواة بين كائن بسيط وآخر واعٍ الخطأ TypeError.
  • التقطيع، يمكن استخدام الكائن كمفتاح في قاموس.

يحمل كائن time القيمة True دائمًا في السياقات المنطقية.

ملاحظة: قبل الإصدار 3.5 من بايثون، كان كائن time يحمل القيمة false إذا كان يمثّل منتصف الليل حسب التوقيت العالمي المنسّق. كان هذا السلوك سببًا في وقوع الالتباس وحدوث الأخطاء، وقد ألغي في الإصدار 3.5 من اللغة.

يبين المثال التالي مقارنة بسيطة بين كائني time مختلفين:

>>> t1 = time(12, 10, 30)
>>> t2 = time(11, 9, 54)
>>> t1 == t2
False
>>> t1 < t2
False
>>> t1 > t2
True

دالة بانية أخرى

يمكن إنشاء كائن time باستخدام الدالة البانية time.fromisoformat()‎.

تعيد هذه الدالة البانية كائن time موافقة للمعامل time_string وهو عبارة عن سلسلة نصية، ويُنسّق الكائن الجديد بواسطة أحد التنسيقات التي يقدّمها التابع time.isofromat()‎.

تدعم هذه الدالة السلاسل النصية ذات التنسيق:

HH[:MM[:SS[.mmm[mmm]]]][+HH:MM[:SS[.ffffff]]]

جدير بالذكر أنّ هذه الدالة لا تدعم تفسير سلاسل المعيار ISO 8601، وأنّ الهدف منها هو أداء الوظيفة المعاكسة للتابع time.isofromat()‎.

ملاحظة: هذه الدالة جديدة في الإصدار 3.7 من اللغة.

توابع نسخ الكائن time

تقدم نسخ الكائن time التوابع التالية:

التابع time.replace()‎

يستبدل التابع القيم المعطاة في المعاملات بالقيم الأصلية في كائن الوقت.

التابع time.isoformat()‎

يعيد التابع سلسلة نصية تمثّل الوقت بصيغة المعيار ISO 8601.

التابع time.__str__()‎

التابع time.strftime()‎

التابع time.__format__()‎

التابع time.utcoffset()‎

التابع time.dst()‎

التابع time.tzname()‎

مصادر