التابع datetime.timestamp()‎ في بايثون

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يعيد التابع الختم الزمني (بصيغة 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 في توثيق بايثون الرسمي.