توفر بايثون عدة طرق لاسترجاع الوقت الحالي، لكل منها نقاط قوتها وضعفها. سترشدك هذه المقالة خلال ثلاث طرق شائعة: استخدام مكتبات datetime
و time
و arrow
.
جدول المحتويات
- استخدام وحدة
datetime
- استخدام وحدة
time
- استخدام مكتبة
arrow
- معالجة المناطق الزمنية
- تنسيق مخرجات الوقت
- الخاتمة
استخدام وحدة datetime
تُعد وحدة datetime
جزءًا من مكتبة بايثون القياسية. للحصول على الوقت الحالي، استخدم datetime.now()
:
import datetime
now = datetime.datetime.now()
print(now)
يعرض هذا التاريخ والوقت الحاليين. يمكنك الوصول إلى المكونات الفردية:
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
microsecond = now.microsecond
print(f"الوقت الحالي هو: {hour}:{minute}:{second}")
استخدام وحدة time
ترجع وحدة time
الوقت كتوقيت زمني (ثوانٍ منذ البدء).
import time
timestamp = time.time()
print(timestamp) # ثوانٍ منذ البدء
هذا مفيد لحساب اختلافات الوقت. للتحويل إلى تنسيق قابل للقراءة، استخدم datetime
:
import time
import datetime
timestamp = time.time()
current_time = datetime.datetime.fromtimestamp(timestamp)
print(current_time)
استخدام مكتبة arrow
توفر مكتبة arrow
(pip install arrow
) واجهة أكثر سهولة في الاستخدام، خاصةً للمناطق الزمنية والتنسيق:
import arrow
now = arrow.now()
print(now)
معالجة المناطق الزمنية
لعمليات المناطق الزمنية، استخدم مكتبة pytz
مع datetime
أو استخدم إمكانيات arrow
المدمجة:
import datetime
import pytz
tz = pytz.timezone('America/Los_Angeles')
now = datetime.datetime.now(tz)
print(now)
# باستخدام arrow
import arrow
pacific_time = arrow.now('US/Pacific')
print(pacific_time)
تنسيق مخرجات الوقت
استخدم strftime()
مع datetime
أو طرق تنسيق arrow
لإخراج مخصص:
import datetime
now = datetime.datetime.now()
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)
import arrow
formatted_time = arrow.now().format("YYYY-MM-DD HH:mm:ss ZZ")
print(formatted_time)
الخاتمة
يوصى عمومًا باستخدام datetime
لسهولة استخدامه وتضمينه في المكتبة القياسية. time
مناسب لعمليات التوقيت الزمني منخفضة المستوى، وarrow
يبسط معالجة المناطق الزمنية والتنسيق ولكنه يتطلب تثبيتًا إضافيًا.