كيفية التعامل مع التواريخ والأوقات في بايثون باستخدام datetime
إن التعامل مع التواريخ والأوقات مهمة شائعة في البرمجة، ويوفر Python وحدة مدمجة تسمى datetime
للتعامل مع التواريخ والأوقات. توفر هذه الوحدة فئات للتعامل مع التواريخ والأوقات والفواصل الزمنية، مما يجعل من الأسهل إجراء العمليات الحسابية للتاريخ وتنسيق التواريخ وإدارة المناطق الزمنية. في هذه المقالة، سنستكشف كيفية استخدام وحدة datetime
للتعامل مع التواريخ والأوقات بشكل فعال في Python.
البدء باستخدام datetime
توفر وحدة datetime
عدة فئات، مثل datetime.date
وdatetime.time
وdatetime.datetime
وdatetime.timedelta
وdatetime.tzinfo
. تتيح لنا هذه الفئات العمل مع التواريخ والأوقات والفواصل الزمنية.
لبدء استخدام وحدة datetime
، تحتاج إلى استيرادها:
import datetime
العمل مع التواريخ
يمكنك إنشاء كائن تاريخ باستخدام فئة date
. ويتطلب ذلك ثلاثة معلمات: السنة والشهر واليوم.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
يمكنك أيضًا الوصول إلى المكونات الفردية للتاريخ، مثل السنة والشهر واليوم:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
العمل مع الأوقات
تتيح لك فئة time
إنشاء كائن زمني. وتتطلب ساعات ودقائق وثوانٍ وميكروثانية (اختياري).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
على غرار التواريخ، يمكنك الوصول إلى المكونات الفردية لكائن الوقت:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
دمج التاريخ والوقت باستخدام datetime
تجمع فئة datetime
بين التاريخ والوقت في كائن واحد. يمكنك إنشاء كائن datetime
عن طريق تمرير السنة والشهر واليوم والساعة والدقيقة والثانية والميكروثانية (اختياري).
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
يمكنك الوصول إلى كل من مكونات التاريخ والوقت لكائن datetime
:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
الحصول على التاريخ والوقت الحاليين
توفر وحدة datetime
طرقًا ملائمة للحصول على التاريخ أو الوقت الحالي أو كليهما:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
حساب التاريخ باستخدام timedelta
تمثل فئة timedelta
مدة زمنية، وهي الفرق بين تاريخين أو وقتين. وهي تتيح لك إجراء عمليات حسابية للتاريخ، مثل إضافة أو طرح أيام من تاريخ.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
يمكنك أيضًا حساب الفرق بين تاريخين:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
تنسيق التواريخ والأوقات
تتيح لك طريقة strftime()
تنسيق التاريخ أو الوقت في سلسلة. تأخذ هذه الطريقة رمز تنسيق لتحديد التنسيق المطلوب:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
تتضمن رموز التنسيق الشائعة ما يلي:
%Y
- السنة (على سبيل المثال، 2023)%m
- الشهر كرقم عشري مبطن بالصفر (على سبيل المثال، 09)%d
- يوم الشهر كرقم عشري مبطن بالصفر (على سبيل المثال، 04)%H
- الساعة (ساعة 24 ساعة) كرقم عشري مبطن بالصفر (على سبيل المثال، 14)%M
- الدقيقة كرقم عشري مبطن بالصفر (على سبيل المثال، 30)%S
- الثانية كرقم عشري مبطن بالصفر (على سبيل المثال، 45)
تحليل التواريخ من السلاسل
تتيح لك طريقة strptime()
تحويل سلسلة إلى كائن datetime
، مع الأخذ في الاعتبار تنسيق سلسلة التاريخ:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
العمل مع المناطق الزمنية
تدعم وحدة datetime
الكائنات التي تتعرف على المنطقة الزمنية datetime
باستخدام مكتبة pytz
. للعمل مع المناطق الزمنية، تحتاج إلى تثبيت pytz
:
pip install pytz
بعد ذلك، يمكنك تعيين منطقة زمنية لكائن datetime
:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
خاتمة
توفر وحدة datetime
في Python أدوات قوية للتعامل مع التواريخ والأوقات، بما في ذلك إنشاء وتنسيق وتحليل وإجراء العمليات الحسابية باستخدام كائنات التاريخ والوقت. سواء كنت بحاجة إلى معالجة التواريخ أو العمل مع المناطق الزمنية أو تنسيق التواريخ والأوقات للعرض، فإن وحدة datetime
ستلبي احتياجاتك.