Python التاريخ والوقت والوقتDelta، Strftime(تنسيق) مع أمثلة
⚡ ملخص ذكي
Python تتعامل وحدة datetime، إلى جانب فئات التاريخ والوقت وفترة التغيير الزمني، مع التواريخ والأوقات والفترات الزمنية ككائنات. تقوم هذه الوحدة بتنسيق المخرجات باستخدام الدالة strftime()، وتحليل السلاسل النصية، وحساب اللحظات المستقبلية أو الماضية باستخدام حسابات فترة التغيير الزمني.

In Python, التاريخ والوقت والوقت توفر الفئات عددًا من الدوال للتعامل مع التواريخ والأوقات والفترات الزمنية. التاريخ والتاريخ والوقت في Python هي كائنات، لذا عند التعامل معها، فأنت تتعامل فعليًا مع كائنات وليس مع سلاسل نصية أو طوابع زمنية. عند التعامل مع التواريخ أو الأوقات، يجب استيراد وحدة datetime.
فئات التاريخ والوقت في Python يتم تصنيفها إلى 5 فئات رئيسية.
- التاريخ - التعامل مع التاريخ فقط (الشهر واليوم والسنة)
- الوقت - الوقت المستقل عن اليوم (ساعة، دقيقة، ثانية، ميكروثانية)
- datetime - مزيج من الوقت والتاريخ (الشهر، اليوم، السنة، الساعة، الثانية، ميكروثانية)
- timedelta—مدة زمنية تُستخدم للتلاعب بالتواريخ
- tzinfo— An abstracفئة t للتعامل مع المناطق الزمنية
كيفية استخدام فئة التاريخ والوقت
الخطوة 1:) قبل تشغيل التعليمات البرمجية لتنسيق التاريخ والوقت في Python، فمن المهم أن تقوم باستيراد ملف Python وحدات التاريخ والوقت كما هو موضح في لقطة الشاشة أدناه.
تعد عبارات الاستيراد هذه بمثابة أجزاء محددة مسبقًا من الوظائف في ملف Python مكتبة تتيح لك التلاعب بالتواريخ والأوقات، دون كتابة أي كود.
ضع في اعتبارك النقاط التالية قبل تنفيذ الأمر Python كود تنسيق التاريخ
from datetime import date
هذا الخط يحكي Python مترجم لاستيراد فئة التاريخ من وحدة التاريخ والوقت في Pythonنحن لا نكتب الكود الخاص بوظيفة التاريخ هذه، بل نقوم ببساطة باستيرادها لاستخدامنا.
طباعة التاريخ باستخدام date.today()
تتضمن الدالة date.today() عدة خصائص مرتبطة بها. يمكننا طباعة اليوم/الشهر/السنة بشكل فردي، بالإضافة إلى العديد من المعلومات الأخرى.
دعونا نرى مثالا
رقم اليوم الاسبوعي
تُعطيك الدالة date.today() أيضًا رقم يوم الأسبوع. إليك جدول أيام الأسبوع الذي يبدأ بـ Monday كـ 0 ويوم الأحد كـ 6.
| يوم | رقم أيام الأسبوع |
|---|---|
| Monday | 0 |
| الثلاثاء | 1 |
| الأربعاء | 2 |
| الخميس | 3 |
| الجمعة | 4 |
| السبت | 5 |
| الأحد | 6 |
يُعد رقم أيام الأسبوع مفيدًا للصفائف التي يعتمد فهرسها على يوم الأسبوع.
الخطوة 2:) بعد ذلك، نقوم بإنشاء مثيل لكائن التاريخ.
الخطوة 3:) بعد ذلك، نقوم بطباعة التاريخ وتشغيل الكود.
النتيجة كما هو متوقع.
Python التاريخ والوقت الحالي: الآن () اليوم ()
الخطوة 1) مثل كائنات التاريخ، يمكننا أيضًا استخدامها "كائنات التاريخ والوقت" in Python. Python كائنات التاريخ والوقت تعطي التاريخ مع الوقت الساعات والدقائق والثواني والملي ثانية.
عندما نقوم بتنفيذ التعليمات البرمجية للتاريخ والوقت، فإنه يعطي الإخراج بالتاريخ والوقت الحاليين.
الخطوة 2) باستخدام "كائن التاريخ والوقت"، يمكنك أيضًا استدعاء فئة الوقت. لنفترض أننا نريد طباعة الوقت الحالي فقط دون التاريخ.
t = datetime.time(datetime.now())
- لقد استوردنا فئة الوقت. سنقوم بتعيين القيمة الحالية للوقت باستخدام datetime.now()
- نقوم بتعيين قيمة الوقت الحالي للمتغير t.
وهذا سوف يعطيني الوقت فقط. لذلك دعونا تشغيل هذا البرنامج.
حسناً، كما ترون، هنا لدي التاريخ والوقت. وفي السطر التالي، لدي الوقت فقط.
الخطوة 3) سنقوم بتطبيق فهرس أيام الأسبوع على قائمة مصفوفة أيام الأسبوع لمعرفة أي يوم هو اليوم.
- يُعيّن عامل أيام الأسبوع (wd) رقمًا من 0 إلى 6 بناءً على يوم الأسبوع الحالي. هنا قمنا بتعريف مصفوفة قائمة الأيام (الاثنين، الثلاثاء، الأربعاء، ... الأحد).
- استخدم قيمة الفهرس هذه لمعرفة اليوم الذي نحن فيه. في حالتنا، هو رقم 2، وهو يمثل الأربعاء، لذا في المخرجات سيتم طباعة "وهو يوم الأربعاء".
إليك الكود الكامل للحصول على التاريخ والوقت الحاليين باستخدام datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
كيفية تنسيق إخراج التاريخ والوقت باستخدام Strftime()
حتى الآن، تعلمنا كيفية استخدام التاريخ والوقت والتاريخ الكائن في Python. سنتقدم خطوة أخرى ونتعلم كيفية استخدام وظيفة التنسيق لتنسيق الوقت والتاريخ.
الخطوة 1) أولاً سنرى خطوة بسيطة لكيفية تنسيق السنة. من الأفضل أن نفهم بمثال.
- استخدمنا "دالة strftime" للتنسيق.
- تستخدم هذه الوظيفة مختلفة رمز التحكم لإعطاء الإخراج.
- كل رمز تحكم يمثل معايير مختلفة مثل السنة والشهر ويوم الأسبوع والتاريخ [(%y/%Y - السنة)، (%a/%A- يوم من أيام الأسبوع)، (%b/%B- شهر)، (%d - يوم من الشهر)] .
- في حالتنا، هو عليه ("%ص") الذي يشبه السنة، فإنه يطبع السنة الكاملة مع القرن (على سبيل المثال، 2018).
الخطوة 2) الآن إذا استبدلت (“%Y”) بأحرف صغيرة، أي (“%y) وقمت بتنفيذ الكود، فسيتم عرض الإخراج (18) فقط وليس (2018). لن يتم عرض قرن العام كما هو موضح في لقطة الشاشة أدناه
الخطوة 3) تتيح دالة strf إمكانية تحديد التاريخ واليوم والشهر والسنة بشكل منفصل. كما يمكنك، بإجراء تعديلات بسيطة على كود التحكم في دالة strftime، تنسيق نمط النص.
داخل دالة strftime إذا قمت باستبدال (%a) بحرف A كبير، أي (%A) فسيتم طباعة الناتج على أنه "Friday" بدلاً من مجرد اختصار "Fri".
الخطوة 4) بمساعدة وظيفة "Strftime" يمكننا أيضًا استرداد وقت النظام المحلي أو التاريخ أو كليهما.
- %C- يشير إلى التاريخ والوقت المحلي
- %x- يشير إلى التاريخ المحلي
- %X- يشير إلى التوقيت المحلي
في الإخراج، يمكنك رؤية النتيجة كما هو متوقع
الخطوة 5) تتيح لك وظيفة "strftime" استدعاء الوقت بأي تنسيق 24 ساعة أو 12 ساعة.
فقط من خلال تحديد رمز التحكم مثل %I/H للساعة، و% M للدقيقة، و%S للثانية، يمكن للمرء استدعاء الوقت بتنسيقات مختلفة
خلال 12 ساعة تم الإعلان عن الوقت [print now.strftime(“%I:%M:%S %p) ]
خلال 24 ساعة تم إعلان الوقت [print now.strftime("%H:%M")]
إليك الكود الكامل لتحويل التاريخ والوقت إلى كائن سلسلة.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
ما هو Timedelta في Python?
دلتا زمنية في Python هو كائن يُمثل المدة الزمنية. يُستخدم بشكل أساسي لحساب المدة بين تاريخين ووقتين. كما يُستخدم لاسترجاع الكائن مع اختلاف زمني بين التاريخ والوقت. يدعم كائن timedelta العمليات الحسابية مثل الجمع والطرح.tracالعمليات الحسابية، الضرب، القسمة، إلخ.
كيفية استخدام كائنات Timedelta
مع Python باستخدام كائنات timedelta، يمكنك تقدير الوقت لكل من المستقبل والماضي. بمعنى آخر، إنها فترة زمنية للتنبؤ بأي يوم أو تاريخ أو وقت خاص.
تذكر أن هذه الوظيفة ليست لطباعة الوقت أو التاريخ، ولكنها شيء لحساب المستقبل أو الماضيلنرى Python مثال timedelta لفهمه بشكل أفضل.
الخطوة 1) لتشغيل كائنات Timedelta، تحتاج إلى إعلان بيان الاستيراد أولاً ثم تنفيذ الكود
- اكتب بيان الاستيراد لـ timedelta
- الآن اكتب الكود لطباعة الكائن من دلتا الوقت كما هو موضح في لقطة الشاشة
- قم بتشغيل الكود. يمثل timedelta فترة زمنية تبلغ 365 يومًا و8 ساعات و15 دقيقة ويطبع نفس القيمة
مربك؟ الخطوة التالية سوف تساعد-
الخطوة 2) دعنا نحصل على تاريخ ووقت اليوم للتحقق مما إذا كان بيان الاستيراد الخاص بنا يعمل بشكل جيد. عند تنفيذ الكود، فإنه يطبع تاريخ اليوم مما يعني أن بيان الاستيراد الخاص بنا يعمل بشكل جيد
الخطوة 3) سنرى كيف يمكننا استرجاع التاريخ بعد عام من الآن من خلال كائنات دلتا. عندما نقوم بتشغيل الكود، فإنه يعطي الناتج كما هو متوقع.
الخطوة 4) مثال آخر لكيفية استخدام دلتا الوقت لحساب التاريخ المستقبلي من التاريخ والوقت الحاليين
الخطوة 5) دعونا نلقي نظرة على مثال أكثر تعقيدًا. أود أن أحدد عدد الأيام التي مرت منذ بداية العام الجديد. إليك كيفية المضي قدمًا
- باستخدام today= date.today() سنحصل على تاريخ اليوم
- نحن نعلم أن العام الجديد يكون دائمًا في الأول من يناير، لكن العام قد يكون مختلفًا. باستخدام nyd= date(today.year,1) نقوم بتخزين العام الجديد في المتغير nyd
- إذا كان تاريخ رأس السنة الجديدة أقل من تاريخ اليوم: يتم التحقق مما إذا كان التاريخ الحالي أكبر من تاريخ رأس السنة الجديدة. إذا كان كذلك، يتم الدخول في حلقة التكرار while.
- ((today-nyd).days) يعطي الفرق بين التاريخ الحالي والعام الجديد بالأيام
يُظهر الإخراج أن "يوم رأس السنة الجديدة قد مر بالفعل منذ 11 يومًا."
هنا هو رمز العمل الكامل
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 مثال
توضح الأمثلة التالية نفس عمليات التاريخ والوقت المكتوبة لـ Python ٢، حيث تكون الطباعة عبارة وليست دالة. استخدم هذه الإصدارات فقط عند صيانة الأنظمة القديمة. Python الرمز 2.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















