كيفية التعامل مع تواريخ وأوقات باستخدام مكتبة datetime في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 10 سبتمبر 2024

محتوى المقال

كيفية التعامل مع تواريخ وأوقات باستخدام مكتبة datetime في Python

تُعد مكتبة datetime واحدة من الأدوات الأساسية في Python للتعامل مع التواريخ والأوقات. توفر هذه المكتبة وظائف متعددة لإنشاء كائنات datetime، تنسيقها، وإجراء العمليات الحسابية عليها. في هذا المقال، سنتعرف على كيفية استخدام مكتبة datetime بشكل فعال من خلال أمثلة عملية.

ما هي مكتبة datetime؟

مكتبة datetime هي مكتبة مدمجة في Python تتيح للمطورين التعامل مع التواريخ والأوقات بسهولة. توفر المكتبة كائنات مثل date، time، datetime، وtimedelta، التي تُستخدم لإدارة العمليات المختلفة المتعلقة بالوقت.

لماذا نستخدم datetime؟

  • إدارة التواريخ والأوقات بشكل دقيق وفعال.
  • إجراء العمليات الحسابية على التواريخ، مثل حساب الفروق بين التواريخ.
  • تنسيق التواريخ والأوقات لعرضها بالطريقة المطلوبة.

إنشاء كائنات datetime

يمكنك إنشاء كائنات datetime بسهولة باستخدام مكتبة datetime. دعونا نبدأ بإنشاء كائنات للتواريخ والأوقات.

إنشاء كائنات date

يمكنك إنشاء كائن date باستخدام الدالة date() الموجودة في مكتبة datetime:

from datetime import date

# إنشاء كائن تاريخ
my_date = date(2023, 9, 10)
print(my_date) # الناتج: 2023-09-10

في هذا المثال، قمنا بإنشاء كائن date يمثل العاشر من سبتمبر 2023.

إنشاء كائنات time

يمكنك أيضًا إنشاء كائن time باستخدام الدالة time():

from datetime import time

# إنشاء كائن وقت
my_time = time(14, 30, 0)
print(my_time) # الناتج: 14:30:00

هنا، قمنا بإنشاء كائن time يمثل الساعة 14:30:00.

إنشاء كائنات datetime

لجمع كل من التاريخ والوقت في كائن واحد، يمكنك استخدام datetime:

from datetime import datetime

# إنشاء كائن datetime
my_datetime = datetime(2023, 9, 10, 14, 30, 0)
print(my_datetime) # الناتج: 2023-09-10 14:30:00

في هذا المثال، قمنا بإنشاء كائن datetime يمثل العاشر من سبتمبر 2023 في الساعة 14:30:00.

الحصول على التاريخ والوقت الحالي

يمكنك الحصول على التاريخ والوقت الحالي باستخدام الدوال today() و now():

# الحصول على التاريخ الحالي
today = date.today()
print(today) # الناتج: 2024-09-10 (مثال)

# الحصول على التاريخ والوقت الحالي
now = datetime.now()
print(now) # الناتج: 2024-09-10 14:30:00.123456 (مثال)

الدالة today() تُرجع التاريخ الحالي، بينما now() تُرجع التاريخ والوقت الحالي مع الدقائق والثواني والميكروثواني.

تنسيق التواريخ والأوقات

يمكنك تنسيق التواريخ والأوقات باستخدام الدالة strftime()، التي تسمح لك بتحويل كائنات date و datetime إلى سلاسل نصية بتنسيق محدد.

تنسيق التاريخ

يمكنك استخدام رموز تنسيق مختلفة لتحديد كيفية عرض التاريخ:

# تنسيق التاريخ
formatted_date = today.strftime("%d/%m/%Y")
print(formatted_date) # الناتج: 10/09/2024

في هذا المثال، نقوم بتنسيق التاريخ ليظهر بالشكل "يوم/شهر/سنة".

تنسيق الوقت

بالمثل، يمكنك تنسيق الوقت باستخدام الدالة strftime():

# تنسيق الوقت
formatted_time = my_time.strftime("%H:%M:%S")
print(formatted_time) # الناتج: 14:30:00

هنا، نقوم بتنسيق الوقت ليظهر بالشكل "ساعة:دقيقة:ثانية".

إجراء العمليات الحسابية على التواريخ والأوقات

يمكنك إجراء العمليات الحسابية على التواريخ والأوقات باستخدام كائن timedelta. هذا الكائن يُستخدم لتمثيل الفرق بين تاريخين أو وقتين.

إضافة أو طرح أيام

يمكنك إضافة أو طرح عدد معين من الأيام باستخدام timedelta:

from datetime import timedelta

# إضافة 10 أيام إلى التاريخ الحالي
new_date = today + timedelta(days=10)
print(new_date) # الناتج: 2024-09-20 (مثال)

# طرح 5 أيام من التاريخ الحالي
previous_date = today timedelta(days=5)
print(previous_date) # الناتج: 2024-09-05 (مثال)

في هذا المثال، نقوم بإضافة 10 أيام إلى التاريخ الحالي، وطرح 5 أيام منه.

حساب الفرق بين تاريخين

يمكنك حساب الفرق بين تاريخين باستخدام عملية الطرح:

# حساب الفرق بين تاريخين
date1 = date(2024, 9, 10)
date2 = date(2024, 8, 25)

difference = date1 date2
print(difference.days) # الناتج: 16

في هذا المثال، قمنا بحساب الفرق بين تاريخين، وكانت النتيجة 16 يومًا.

التعامل مع المناطق الزمنية (Time Zones)

التعامل مع المناطق الزمنية يمكن أن يكون مهمًا عند العمل على تطبيقات تحتاج لدعم مواقع متعددة. مكتبة pytz توفر الدعم للمناطق الزمنية.

تثبيت مكتبة pytz

$ pip install pytz

استخدام pytz مع datetime

يمكنك استخدام pytz لتعيين أو تحويل المنطقة الزمنية لكائن datetime:

from datetime import datetime
import pytz

# إنشاء كائن datetime للوقت الحالي
now_utc = datetime.now(pytz.utc)
print(now_utc) # الناتج: 2024-09-10 14:30:00+00:00 (مثال)

# تحويل الوقت إلى منطقة زمنية محددة
now_cairo = now_utc.astimezone(pytz.timezone("Africa/Cairo"))
print(now_cairo) # الناتج: 2024-09-10 16:30:00+02:00 (مثال)

في هذا المثال، قمنا بإنشاء كائن datetime للوقت الحالي في منطقة زمنية UTC، ثم قمنا بتحويله إلى منطقة زمنية أخرى مثل القاهرة.

الخلاصة

تُعد مكتبة datetime في Python أداة قوية ومرنة للتعامل مع التواريخ والأوقات. سواء كنت بحاجة إلى إدارة التواريخ، تنسيقها، إجراء العمليات الحسابية عليها، أو التعامل مع المناطق الزمنية، توفر لك مكتبة datetime الأدوات اللازمة لإنجاز هذه المهام بكفاءة. من خلال فهم الأساسيات واستخدام الأمثلة العملية، يمكنك التعامل مع التواريخ والأوقات بثقة في مشاريع Python الخاصة بك.

طور مهاراتك: مقالات يجب قراءتها في البرمجة