كيفية تنسيق التواريخ في بايثون

المُقدّمة

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

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

المناطق المختلفة حول العالم لها طرق مختلفة لتمثيل التواريخ / الأوقات ، لذلك هدفك كمبرمج هو تقديم قيم التاريخ بطريقة يمكن قراءتها للمستخدمين.

على سبيل المثال ، قد تحتاج إلى تمثيل قيمة تاريخ عدديًا مثل "02-23-2023". على الجانب الآخر ، قد تحتاج إلى كتابة نفس قيمة التاريخ بتنسيق نصي أطول مثل "23 فبراير 2023". في سيناريو آخر ، قد ترغب في استخراج الشهر بتنسيق سلسلة من قيمة تاريخ معدلة رقميًا.

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

وحدة التاريخ والوقت

بيثون datetime تحتوي الوحدة النمطية على الطرق التي يمكن استخدامها للعمل مع قيم التاريخ والوقت. لاستخدام هذه الوحدة ، نقوم أولاً باستيرادها عبر ملف import البيان على النحو التالي:

import datetime

يمكننا تمثيل قيم الوقت باستخدام time فصل. سمات time يشمل الفصل الساعة والدقيقة والثانية والميكروثانية.

ملحوظة: الحجج ل time فئة اختيارية. على الرغم من أنك إذا لم تحدد أي حجة ، فستسترجع وقتًا بقيمة 0 ، وهو ما من غير المرجح أن يكون ما تحتاجه في معظم الأوقات.

على سبيل المثال ، يمكنك تهيئة كائن زمني بقيمة ساعة و 1 دقائق و 10 ثانية و 20 ميكروثانية باستخدام:

t = datetime.time(1, 10, 20, 13)

لمعرفة الوقت ، دعنا نستخدم ملف print وظيفة:

print(t)

لاستخراج الحقول ، مثل الساعة أو الدقيقة أو الثانية أو الميكروثانية - يمكنك الوصول إلى كل حقل على التوالي:

print('hour:', t.hour)

يمكن استرجاع الدقائق والثواني والميكروثانية للوقت أعلاه على النحو التالي:

print('Minutes:', t.minute) 
print('Seconds:', t.second) 
print('Microsecond:', t.microsecond) 

يمكن تمثيل قيم تاريخ التقويم عبر ملف date فصل. سيكون للمثيلات سمات للسنة والشهر واليوم.

دعونا ندعو today() طريقة لمعرفة تاريخ اليوم:

import datetime

today = datetime.date.today()
print(today) 

سيعيد الرمز تاريخ اليوم ، وبالتالي فإن الإخراج الذي تراه سيعتمد على اليوم الذي تقوم فيه بتشغيل البرنامج النصي أعلاه.

الآن دعنا نسمي ctime طريقة طباعة التاريخ بتنسيق آخر:

print('ctime:', today.ctime())

ctime تستخدم الطريقة تنسيقًا أطول للتاريخ والوقت من الأمثلة التي رأيناها من قبل. تستخدم هذه الطريقة بشكل أساسي لتحويل Unix-time (عدد الثواني منذ 1 يناير 1970) إلى تنسيق سلسلة.

وإليك كيفية عرض السنة والشهر واليوم باستخدام date صف دراسي:

print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)

وينتج عنه:

Year: 2022
Month: 9
Day : 15

تحويل التواريخ إلى سلاسل باستخدام strftime ()

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

لتحقيق ذلك ، سنستخدم ملف strftime() طريقة. تساعدنا هذه الطريقة في تحويل كائنات التاريخ إلى سلاسل قابلة للقراءة. يتطلب الأمر معلمتين ، كما هو موضح في بناء الجملة التالي:

time.strftime(format, t)

المعلمة الأولى هي سلسلة التنسيق ، بينما المعلمة الثانية هي وقت التنسيق ، وهي اختيارية.

يمكن استخدام هذه الطريقة أيضًا في ملف datetime الكائن مباشرة ، كما هو موضح في المثال التالي:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))

تحقق من دليلنا العملي العملي لتعلم Git ، مع أفضل الممارسات ، والمعايير المقبولة في الصناعة ، وورقة الغش المضمنة. توقف عن أوامر Googling Git وفي الواقع تعلم ذلك!

لقد استخدمنا سلاسل الأحرف التالية لتنسيق التاريخ:

  • %b: إرجاع الأحرف الثلاثة الأولى من اسم الشهر. في مثالنا ، تم إرجاع "سبتمبر".
  • %d: إرجاع يوم من الشهر ، من 1 إلى 31. في مثالنا ، تم إرجاع "15".
  • %Y: إرجاع السنة بتنسيق مكون من أربعة أرقام. في مثالنا ، تم إرجاع "2022".
  • %H: إرجاع الساعة. في مثالنا ، أعاد "00".
  • %M: إرجاع الدقيقة ، من 00 إلى 59. في مثالنا ، تم إرجاع "00".
  • %S: إرجاع الثانية ، من 00 إلى 59. في مثالنا ، تم إرجاع "00".

لم نمر أي وقت ، وبالتالي فإن قيم الوقت كلها "00". يوضح المثال التالي كيف يمكن تنسيق الوقت أيضًا:

import datetime

x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))

قائمة رمز الأحرف الكاملة

بخلاف سلاسل الأحرف المذكورة أعلاه ، فإن ملف strftime تأخذ الطريقة عدة توجيهات أخرى لتنسيق قيم التاريخ:

  • %a: إرجاع الأحرف الثلاثة الأولى من أيام الأسبوع ، على سبيل المثال Wed.
  • %A: إرجاع الاسم الكامل ليوم الأسبوع ، على سبيل المثال الأربعاء.
  • %B: إرجاع الاسم الكامل للشهر ، مثل سبتمبر.
  • %w: إرجاع يوم الأسبوع كرقم ، من 0 إلى 6 ، بحيث يكون يوم الأحد 0.
  • %m: إرجاع الشهر كرقم من 01 إلى 12.
  • %p: إرجاع AM / PM للوقت.
  • %y: إرجاع السنة بتنسيق مكون من رقمين ، أي بدون القرن. على سبيل المثال ، "18" بدلاً من "2018".
  • %f: إرجاع ميكرو ثانية من 000000 إلى 999999.
  • %Z: إرجاع المنطقة الزمنية.
  • %z: إرجاع تعويض UTC.
  • %j: إرجاع رقم اليوم في السنة من 001 إلى 366.
  • %W: إرجاع رقم الأسبوع في السنة ، من 00 إلى 53 ، مع احتساب يوم الإثنين كأول يوم في الأسبوع.
  • %U: إرجاع رقم الأسبوع في السنة ، من 00 إلى 53 ، مع احتساب يوم الأحد باعتباره اليوم الأول من كل أسبوع.
  • %c: إرجاع إصدار التاريخ والوقت المحلي.
  • %x: إرجاع الإصدار المحلي للتاريخ.
  • %X: إرجاع الإصدار المحلي للوقت.

خذ بعين الاعتبار المثال التالي:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))

وإليك كيف يمكنك الحصول على الشهر فقط:

print(x.strftime('%B'))

دعونا نعرض العام:

print(x.strftime('%Y'))

في هذا المثال استخدمنا كود التنسيق %Y. لاحظ أن ملف Y بأحرف كبيرة. اكتبها الآن بأحرف صغيرة:

print(x.strftime('%y'))

كما ترى ، باستخدام رموز التنسيق هذه ، يمكنك تمثيل التاريخ والوقت بأي شكل تريده تقريبًا.

تحويل السلاسل إلى تواريخ مع strptime

strftime() ساعدتنا الطريقة في تحويل كائنات التاريخ إلى سلاسل أكثر قابلية للقراءة. ال strptime() تقوم الطريقة بالعكس ، أي أنها تأخذ سلاسل وتحولها إلى كائنات تاريخ يمكن لبايثون فهمها.

يكون هذا مفيدًا عندما تتلقى تاريخًا بتنسيق سلسلة ، وترغب في تحويله إلى تاريخ آخر بتنسيق سلسلة. من خلال التحويل إلى كائن تاريخ ووقت وسيط ، يمكنك الوصول إلى بنية تم تحليلها يمكن إعادة تنسيقها إلى أي تنسيق آخر.

فيما يلي بناء الجملة للطريقة:

datetime.strptime(string, format)

string المعلمة هي القيمة الموجودة في تنسيق السلسلة التي نريد تحويلها إلى تنسيق التاريخ. ال format المعلمة هي التوجيه الذي يحدد التنسيق الذي سيتم اتخاذه بحلول التاريخ بعد التحويل.

على سبيل المثال ، لنفترض أننا بحاجة إلى تحويل السلسلة النصية "9/15/22" إلى ملف datetime موضوع.

لنقم أولاً باستيراد ملف datetime وحدة:

from datetime import datetime

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

str = '9/15/22'

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

نفّذ الأمر التالي لتحويل السلسلة:

date_object = datetime.strptime(str, '%m/%d/%y')

دعنا الآن نسمي print وظيفة لعرض السلسلة في datetime شكل:

print(date_object)

كما ترى ، كان التحويل ناجحًا!

يمكنك الآن تحويل كائن التاريخ هذا إلى أي تنسيق سلسلة آخر.

تعتبر معالجة الفواصل المختلفة سهلة مثل استخدامها في سلسلة التنسيق:

from datetime import datetime

str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)

وفي الختام

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

الطابع الزمني:

اكثر من ستاكابوز