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

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


== البنية العامة ==
== البنية العامة ==
سطر 11: سطر 10:
== القيمة المعادة ==
== القيمة المعادة ==


يعيد التابع الختم الزمني (بصيغة POSIX) الموافق لنسخة الصنف datetime.
يعيد التابع الختم الزمني (بصيغة POSIX) الموافق لنسخة الصنف <code>datetime</code>.
 
تكون النتيجة المعادة عددًا ذا فاصلة عائمة يشبه ذلك المعاد من التابع time.time()‎.


يُفترض بكائنات datetime البسيطة أن تمثّل الوقت حسب التوقيت المحلّي، ويعتمد هذا التابع على دالة mktime()‎ في لغة C لإجراء عملية التحويل.
تكون النتيجة المعادة عددًا ذا فاصلة عائمة يشبه ذلك المعاد من التابع <code>time.time()</code>‎.


ولمّا كان كائن datetime يدعم نطاقًا أوسع من القيم مقارنة بالدالة maktime()‎ في عدد من المنصّات، فإنّ هذا التابع يطلق الخطأ OverflowError عندما يكون الوقت المستخدم بعيدًا في الماضي أو في المستقبل.
يُفترض بكائنات <code>datetime</code> البسيطة أن تمثّل الوقت حسب التوقيت المحلّي، ويعتمد هذا التابع على دالة <code>mktime()</code>‎ في لغة C لإجراء عملية التحويل.


أمّا كائنات datetime الواعي فتحسب القيمة المعادة بالطريقة التالية:
ولمّا كان كائن <code>datetime</code> يدعم نطاقًا أوسع من القيم مقارنة بالدالة <code>maktime()‎</code> في عدد من المنصّات، فإنّ هذا التابع يطلق الخطأ <code>OverflowError</code> عندما يكون الوقت المستخدم بعيدًا في الماضي أو في المستقبل.


أمّا كائنات <code>datetime</code> الواعي فتحسب القيمة المعادة بالطريقة التالية:<syntaxhighlight lang="python3">
(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()
(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()
</syntaxhighlight>'''ملاحظات''':


'''ملاحظات''':
1. هذا التابع جديد في الإصدار 3.3 من اللغة.
1. هذا التابع جديد في الإصدار 3.3 من اللغة.
2. في الإصدار 3.6 من اللغة يستخدم التابع timestamp()‎ الخاصية fold لإزالة اللبس عن الأوقات خلال الفترات الزمنية المتكرّرة.
 
3. لا توجد أيّة طريقة مباشرة للحصول على الختم الزمني بصيغة POSIX من كائن datetime بسيط يمثّل الوقت حسب التوقيت العالمي المنسّق. ولكن إن كنت بحاجة إلى ذلك في تطبيقك ولم تكن المنطقة الزمنية الخاصة بالنظام هي UTC، فيمكن الحصول على الختم الزمني بصيغة POSIX عن طريق tzinfo=timezone.utc وكما يلي:
2. في الإصدار 3.6 من اللغة يستخدم التابع <code>timestamp()‎</code> الخاصية <code>fold</code> لإزالة اللبس عن الأوقات خلال الفترات الزمنية المتكرّرة.
 
3. لا توجد أيّة طريقة مباشرة للحصول على الختم الزمني بصيغة POSIX من كائن <code>datetime</code> بسيط يمثّل الوقت حسب التوقيت العالمي المنسّق. ولكن إن كنت بحاجة إلى ذلك في تطبيقك ولم تكن المنطقة الزمنية الخاصة بالنظام هي UTC، فيمكن الحصول على الختم الزمني بصيغة POSIX عن طريق <code>tzinfo=timezone.utc</code> وكما يلي:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 32: سطر 32:
</syntaxhighlight>
</syntaxhighlight>


أو عن طريق حساب timestamp مباشرةً:
أو عن طريق حساب <code>timestamp</code> مباشرةً:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 43: سطر 43:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
>>> from datetime import datetime
>>> dt = datetime(2026, 11, 29, 11, 20, 59)
>>> dt.timestamp()
1795940459.0


</syntaxhighlight>
</syntaxhighlight>


== انظر أيضًا ==
== انظر أيضًا ==
التابع <code>[[Python/datetime/datetime/fromtimestamp|datetime.fromtimestamp()‎]]</code>: يعيد التابع التاريخ والوقت المحلّيين والموافقين لختم POSIX الزمني كالذي يعيده التابع <code>time.time()‎</code>.


== مصادر ==
== مصادر ==

المراجعة الحالية بتاريخ 09:14، 8 يوليو 2018

يعيد التابع الختم الزمني (بصيغة POSIX) الموافق لنسخة الصنف datetime.

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

datetime.timestamp()

القيمة المعادة

يعيد التابع الختم الزمني (بصيغة POSIX) الموافق لنسخة الصنف datetime.

تكون النتيجة المعادة عددًا ذا فاصلة عائمة يشبه ذلك المعاد من التابع time.time()‎.

يُفترض بكائنات datetime البسيطة أن تمثّل الوقت حسب التوقيت المحلّي، ويعتمد هذا التابع على دالة mktime()‎ في لغة C لإجراء عملية التحويل.

ولمّا كان كائن datetime يدعم نطاقًا أوسع من القيم مقارنة بالدالة maktime()‎ في عدد من المنصّات، فإنّ هذا التابع يطلق الخطأ OverflowError عندما يكون الوقت المستخدم بعيدًا في الماضي أو في المستقبل.

أمّا كائنات datetime الواعي فتحسب القيمة المعادة بالطريقة التالية:

(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()

ملاحظات:

1. هذا التابع جديد في الإصدار 3.3 من اللغة.

2. في الإصدار 3.6 من اللغة يستخدم التابع timestamp()‎ الخاصية fold لإزالة اللبس عن الأوقات خلال الفترات الزمنية المتكرّرة.

3. لا توجد أيّة طريقة مباشرة للحصول على الختم الزمني بصيغة POSIX من كائن datetime بسيط يمثّل الوقت حسب التوقيت العالمي المنسّق. ولكن إن كنت بحاجة إلى ذلك في تطبيقك ولم تكن المنطقة الزمنية الخاصة بالنظام هي UTC، فيمكن الحصول على الختم الزمني بصيغة POSIX عن طريق tzinfo=timezone.utc وكما يلي:

timestamp = dt.replace(tzinfo=timezone.utc).timestamp()

أو عن طريق حساب timestamp مباشرةً:

timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)

أمثلة

يبين المثال التالي آلية عمل التابع:

>>> from datetime import datetime
>>> dt = datetime(2026, 11, 29, 11, 20, 59)
>>> dt.timestamp()
1795940459.0

انظر أيضًا

التابع datetime.fromtimestamp()‎: يعيد التابع التاريخ والوقت المحلّيين والموافقين لختم POSIX الزمني كالذي يعيده التابع time.time()‎.

مصادر

قسم datetime Objects في صفحة Basic date and time types في توثيق بايثون الرسمي.