Python التاريخ والوقت والوقتDelta، Strftime(تنسيق) مع أمثلة

In Python, التاريخ والوقت والوقت توفر الفئات عددًا من الوظائف للتعامل مع التواريخ والأوقات والفواصل الزمنية. التاريخ والوقت في Python هي الكائنات، لذا عندما تتعامل معها، فأنت في الواقع تتعامل مع الكائنات وليس سلسلة أو طوابع زمنية. كلما قمت بمعالجة التواريخ أو الوقت، تحتاج إلى استيراد وظيفة التاريخ والوقت.

فئات التاريخ والوقت في Python يتم تصنيفها إلى 5 فئات رئيسية.

  • التاريخ - التعامل مع التاريخ فقط (الشهر واليوم والسنة)
  • الوقت - الوقت المستقل عن اليوم (ساعة، دقيقة، ثانية، ميكروثانية)
  • datetime - مزيج من الوقت والتاريخ (الشهر، اليوم، السنة، الساعة، الثانية، ميكروثانية)
  • timedelta—مدة زمنية تُستخدم للتلاعب بالتواريخ
  • tzinfo— فئة مجردة للتعامل مع المناطق الزمنية

كيفية استخدام فئة التاريخ والوقت

الخطوة الاولى) قبل تشغيل التعليمات البرمجية لتنسيق التاريخ والوقت في Python، فمن المهم أن تقوم باستيراد ملف Python وحدات التاريخ والوقت كما هو موضح في لقطة الشاشة أدناه.

استخدم فئة التاريخ والوقت

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

ضع في اعتبارك النقاط التالية قبل تنفيذ الأمر Python كود تنسيق التاريخ

from datetime import date

هذا الخط يحكي Python مترجم لاستيراد فئة التاريخ من وحدة التاريخ والوقت في Python. نحن لا نكتب الكود الخاص بوظيفة التاريخ هذا، للأسف فقط نقوم باستيراده لاستخدامنا

الخطوة الاولى) بعد ذلك، نقوم بإنشاء مثيل لكائن التاريخ.

استخدم فئة التاريخ والوقت

الخطوة الاولى) بعد ذلك، نقوم بطباعة التاريخ وتشغيل الكود.

استخدم فئة التاريخ والوقت

الإخراج كما هو متوقع.

طباعة التاريخ باستخدام date.today()

date.today الوظيفة لها العديد من الخصائص المرتبطة بها. يمكننا طباعة يوم/شهر/سنة فردية وأشياء أخرى كثيرة

دعونا نرى مثالا

طباعة التاريخ باستخدام date.today()

رقم اليوم الاسبوعي

توفر لك الدالة date.today() أيضًا رقم أيام الأسبوع. هنا جدول أيام الأسبوع الذي يبدأ بـ Monday مثل 0 والأحد مثل 6

يوم رقم أيام الأسبوع
Monday 0
الثلاثاء 1
الأربعاء 2
الخميس 3
الجمعة 4
السبت 5
الأحد 6

يُعد رقم أيام الأسبوع مفيدًا للصفائف التي يعتمد فهرسها على يوم الأسبوع.

طباعة التاريخ باستخدام date.today()

Python التاريخ والوقت الحالي: الآن () اليوم ()

الخطوة 1) مثل كائنات التاريخ، يمكننا أيضًا استخدامها "كائنات التاريخ والوقت" in Python. Python كائنات التاريخ والوقت تعطي التاريخ مع الوقت الساعات والدقائق والثواني والملي ثانية.

Python التاريخ والوقت الحاليان

عندما نقوم بتنفيذ التعليمات البرمجية للتاريخ والوقت، فإنه يعطي الإخراج بالتاريخ والوقت الحاليين.

الخطوة 2) باستخدام "DATETIME OBJECT"، يمكنك أيضًا الاتصال بفئة الوقت.

لنفترض أننا نريد طباعة الوقت الحالي فقط دون التاريخ.

t = datetime.time(datetime.now())
  • لقد استوردنا فئة الوقت. سنقوم بتعيين القيمة الحالية للوقت باستخدام datetime.now()
  • نقوم بتعيين قيمة الوقت الحالي للمتغير t.

وهذا سوف يعطيني الوقت فقط. لذلك دعونا تشغيل هذا البرنامج.

Python التاريخ والوقت الحاليان

حسنًا، يمكنك أن ترى أنني حصلت هنا على التاريخ والوقت. ثم في السطر التالي، لدي الوقت وحده

الخطوة 3) سوف نقوم بتطبيق فهرس أيام الأسبوع الخاص بنا على قائمة المصفوفات الخاصة بأيام الأسبوع لمعرفة أي يوم هو اليوم

  • يتم تعيين الرقم من (0-6) لمشغل أيام الأسبوع (wd) وفقًا ليوم الأسبوع الحالي. هنا أعلنا عن مصفوفة القائمة للأيام (الاثنين، الثلاثاء، الأربعاء...الأحد).
  • استخدم قيمة الفهرس هذه لمعرفة اليوم الذي نحن فيه. في حالتنا، هو رقم 2، وهو يمثل الأربعاء، لذا في المخرجات سيتم طباعة "وهو يوم الأربعاء".

Python التاريخ والوقت الحاليان

إليك الكود الكامل للحصول على التاريخ والوقت الحاليين باستخدام 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()

  • استخدمنا "وظيفة strftime " للتنسيق.
  • تستخدم هذه الوظيفة مختلفة رمز التحكم لإعطاء الإخراج.
  • يشبه كل رمز تحكم معلمات مختلفة مثل السنة والشهر وأيام الأسبوع والتاريخ [(%y/%Y - السنة)، (%a/%A- يوم من أيام الأسبوع)، (%b/%B- شهر)، (%d - يوم من الشهر)] .
  • في حالتنا، هو عليه ("%ص") الذي يشبه السنة، فإنه يطبع السنة الكاملة مع القرن (على سبيل المثال، 2018).

الخطوة 2) الآن إذا استبدلت (“%Y”) بأحرف صغيرة، أي (“%y) وقمت بتنفيذ الكود، فسيتم عرض الإخراج (18) فقط وليس (2018). لن يتم عرض قرن العام كما هو موضح في لقطة الشاشة أدناه

تنسيق إخراج التاريخ والوقت باستخدام Strftime()

الخطوة 3) يمكن لوظيفة Strf أن تعلن التاريخ واليوم والشهر والسنة بشكل منفصل. أيضًا من خلال التغييرات الصغيرة في رمز التحكم في وظيفة strftime، يمكنك تنسيق نمط النص.

تنسيق إخراج التاريخ والوقت باستخدام Strftime()

داخل الدالة strftime، إذا استبدلت (%a) بالحرف الكبير A، أي (%A)، فستتم طباعة الإخراج كـ "Firday" بدلاً من مجرد اختصار "Fri".

تنسيق إخراج التاريخ والوقت باستخدام Strftime()

الخطوة 4) بمساعدة وظيفة "Strftime" يمكننا أيضًا استرداد وقت النظام المحلي أو التاريخ أو كليهما.

  1. %C- يشير إلى التاريخ والوقت المحلي
  2. %x- يشير إلى التاريخ المحلي
  3. %X- يشير إلى التوقيت المحلي

تنسيق إخراج التاريخ والوقت باستخدام Strftime()

في الإخراج، يمكنك رؤية النتيجة كما هو متوقع

الخطوة 5) تتيح لك وظيفة "strftime" استدعاء الوقت بأي تنسيق 24 ساعة أو 12 ساعة.

تنسيق إخراج التاريخ والوقت باستخدام Strftime()

فقط من خلال تحديد رمز التحكم مثل %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

بدافع Python باستخدام كائنات timedelta، يمكنك تقدير الوقت لكل من المستقبل والماضي. بمعنى آخر، إنها فترة زمنية للتنبؤ بأي يوم أو تاريخ أو وقت خاص.

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

الخطوة 1) لتشغيل كائنات Timedelta، تحتاج إلى إعلان بيان الاستيراد أولاً ثم تنفيذ الكود

كائنات Timedelta

  1. اكتب بيان الاستيراد لـ timedelta
  2. الآن اكتب الكود لطباعة الكائن من دلتا الوقت كما هو موضح في لقطة الشاشة
  3. قم بتشغيل الكود. يمثل timedelta فترة زمنية تبلغ 365 يومًا و8 ساعات و15 دقيقة ويطبع نفس القيمة

مربك؟ الخطوة التالية سوف تساعد-

الخطوة 2) دعنا نحصل على تاريخ ووقت اليوم للتحقق مما إذا كان بيان الاستيراد الخاص بنا يعمل بشكل جيد. عند تنفيذ الكود، فإنه يطبع تاريخ اليوم مما يعني أن بيان الاستيراد الخاص بنا يعمل بشكل جيد

كائنات Timedelta

الخطوة 3) سنرى كيف يمكننا استرجاع التاريخ بعد عام من الآن من خلال كائنات دلتا. عندما نقوم بتشغيل الكود، فإنه يعطي الناتج كما هو متوقع.

كائنات Timedelta

الخطوة 4) مثال آخر لكيفية استخدام دلتا الوقت لحساب التاريخ المستقبلي من التاريخ والوقت الحاليين

كائنات Timedelta

الخطوة 5) دعونا نلقي نظرة على مثال أكثر تعقيدًا. أود أن أحدد عدد الأيام التي مرت منذ بداية العام الجديد. إليك كيفية المضي قدمًا

  • باستخدام today= date.today() سنحصل على تاريخ اليوم
  • نحن نعلم أن العام الجديد يكون دائمًا في الأول من يناير، لكن العام قد يكون مختلفًا. باستخدام nyd= date(today.year,1) نقوم بتخزين العام الجديد في المتغير nyd
  • إذا كان nyd < today: يقارن ما إذا كان التاريخ الحالي أكبر من العام الجديد. إذا كانت الإجابة بنعم، فإنه يدخل حلقة while
  • ((today-nyd).days) يعطي الفرق بين التاريخ الحالي والعام الجديد بالأيام

كائنات Timedelta

يُظهر الإخراج أن "يوم رأس السنة الجديدة قد مر بالفعل منذ 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 مثال

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)

الملخص

للتلاعب بالتواريخ والأوقات بطرق بسيطة ومعقدة، توفر وحدة datetime فئات أو فئات مختلفة مثل

  • التاريخ - التعامل مع التاريخ فقط (الشهر واليوم والسنة)
  • الوقت - الوقت المستقل عن اليوم (ساعة، دقيقة، ثانية، ميكروثانية)
  • datetime - مزيج من الوقت والتاريخ (الشهر، اليوم، السنة، الساعة، الثانية، ميكروثانية)
  • timedelta—مدة زمنية تُستخدم للتلاعب بالتواريخ
  • tzinfo — فئة مجردة للتعامل مع المناطق الزمنية

استخدام كائنات التاريخ والوقت

  • يعد استيراد كائنات التاريخ والوقت قبل تنفيذ التعليمات البرمجية أمرًا إلزاميًا
  • استخدام وظيفة date.today لطباعة التاريخ/الشهر/السنة الفردية بالإضافة إلى فهرسة اليوم
  • استخدام كائن date.time للحصول على الوقت بالساعات والدقائق والثواني والملي ثانية

انتهاء مهلة التنسيق باستخدام "وظيفة الوقت str f"

  • استخدم "وظيفة الوقت str f" لتغيير تنسيق السنة
  • طباعة اليوم والتاريخ والشهر والسنة بشكل منفصل،
  • وقت الاتصال بأي تنسيق هو 12 ساعة أو 24 ساعة

كائنات Timedelta

  • باستخدام كائنات timedelta، يمكنك تقدير الوقت لكل من المستقبل والماضي
  • احسب إجمالي الأيام المتبقية لليوم الخاص (عيد الميلاد) من الوقت الحالي
  • حساب إجمالي الأيام التي مرت ليوم خاص (عيد ميلاد) من الوقت الحالي