English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، سنناقش مودول time بشكل مفصل. سنتعلم كيفية استخدام وظائف مختلفة مرتبطة بالوقت المحددة في مودول time عبر أمثلة.
يحتوي Python على مودول يحمل الاسم time للتعامل مع المهام المتعلقة بالوقت. نحتاج أولاً إلى استيراد المودول حتى نتمكن من استخدام الوظائف المحددة به. مثل هذا:
import time
هذه هي الوظائف المتعلقة بالوقت المستخدمة بشكل شائع.
يقوم وظيفة time() بإرجاع الثواني التي مرت منذ الإرادة.
بالنسبة لنظام Unix، في 1 يناير 1970، 00:00:00 فيالتوقيت العالمي المنسق (UTC)هي الإرادة (حيث بدأت الزمن).
import time seconds = time.time() print("Seconds since epoch =", seconds)
يأخذ time.ctime() الثواني من الإرادة كمعامل ويقوم بإرجاع نص يعكس الوقت المحلي.
import time # الثواني التي مرت منذ الإرادة seconds = 1545925769.9618232 local_time = time.ctime(seconds) print("وقت محلي:", local_time)
إذا قمت بتشغيل هذا البرنامج، فإن الناتج سيكون مشابهًا لـ:
Local time: Thu Dec 27 15:49:29 2018
تتوقف وظيفة sleep() الحالية لمدة الثواني المحددة على تنفيذ سطر الحالي.
import time print("هذا هو الطباعة الفورية.") time.sleep(2.4) print("هذا هو الطباعة بعد 2.4 ثانية.")
للحصول على معلومات إضافية، يرجى زيارة:sleep() في Python.
قبل مناقشة وظائف أخرى مرتبطة بالوقت، دعونا نلقي نظرة سريعة على فئة time.struct_time.
بعض الوظائف في مودول الوقت (مثل gmtime()، asctime() إلخ) تأخذ كائن time.struct_time كمعامل أو تقوم بإرجاعه.
هذه هي مثال على كائن time.struct_time.
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
المؤشر | الخاصية | قيمة الخاصية |
---|---|---|
0 | tm_year | 0000،....،2018،...،9999 |
1 | tm_mon | 1،2،...،12 |
2 | tm_mday | 1،2،...،31 |
3 | tm_hour | 0،1،...،23 |
4 | tm_min | 0،1،...،59 |
5 | tm_sec | 0،1،...،61 |
6 | tm_wday | 0،1،...،6؛ الإثنين هو 0 |
7 | tm_yday | 1،2،...،366 |
8 | tm_isdst | 0،1 أو -1 |
يمكن استخدام المؤشر والخصائص لاسترداد قيم time.struct_time (العناصر).
تستخدم دالة localtime() الثانية عدد الثواني التي مرت منذ epoch كمعامل، ويقوم بتحويلها إلىlocaltimeالعودة بـ struct_time.
import time result = time.localtime(1545925769) اطبع("result:", result) اطبع("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
عند تشغيلك للبرنامج، الناتج سيكون مشابهًا لـ:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) year: 2018 tm_hour: 15
إذا لم يتم تقديم أي معامل أو None لـ localtime()، يستخدم time() القيمة التي يتم رجوعها.
يستخدم دالة gmtime() الثانية عدد الثواني التي مرت منذ epoch كمعامل، ويقوم بتحويلها إلىالتوقيت العالمي المنسق (UTC)العودة.
import time result = time.gmtime(1545925769) اطبع("result:", result) اطبع("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
عند تشغيل هذا البرنامج، الناتج سيكون:
result = time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0) year = 2018 tm_hour = 8
إذا لم يتم تقديم معامل أو None لـ gmtime()، يستخدم time() القيمة التي تعود منها.
وظيفة mktime() تأخذ struct_time (أو مجموعة تحتوي على 9 عناصر تتوافق مع struct_time) كمعامل، وتعيد عدد الثواني التي مرت منذ بداية الزمن. بشكل أساسي، هي العكس من localtime()
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) local_time = time.mktime(t) print("وقت محلي:", local_time)
السلسلة التالية توضح علاقة mktime() و localtime()
import time seconds = 1545925769 # يعيد struct_time t = time.localtime(seconds) print("t1: ", t) # يعيد ثواني من struct_time s = time.mktime(t) print("\s:", seconds)
عند تشغيلك للبرنامج، الناتج سيكون مشابهًا لـ:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
وظيفة asctime() تأخذ struct_time (أو مجموعة تحتوي على 9 عناصر تتوافق مع struct_time) كمعامل، وتعيد رقماً نصياً يمثلها. هذا مثال:
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) result = time.asctime(t) print("نتيجة:", result)
عند تشغيل هذا البرنامج، الناتج سيكون:
نتيجة: الجمعة 28 كانون الأول 08:44:04 2018
تقوم هذه الدالة strftime() بتلقي struct_time (أو التuple المماثل) كمعامل، وتعيد نص يمثلها بناءً على رموز التنسيق المستخدمة. على سبيل المثال،
import time named_tuple = time.localtime() # get struct_time time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple) print(time_string)
عند تشغيلك للبرنامج، الناتج سيكون مشابهًا لـ:
12/28/2018, 09:47:41
هنا %Y،%m،%d،%H وما إلى ذلك هي رموز التنسيق.
%Y - السنة [0001،...،2018،2019،...،9999]
%m - الشهر [01،02،...،11،12]
%d - اليوم [01،02،...،30،31]
%H - الساعات [00،01،...،22،23
%M - الدقائق [00،01،...،58،59]
%S - الثواني [00،01،...،58،61]
للحصول على معلومات إضافية، يرجى زيارة:time.strftime().
يحلل هذا الدالة strptime() نص تمثل به الزمن ويعود بـ struct_time.
import time time_string = "21 June, 2018" result = time.strptime(time_string, "%d %B, %Y") print(result)
عند تشغيل هذا البرنامج، الناتج سيكون:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)