وحدة الوقت في بايثون 3. الأساليب والقوالب والأمثلة الرئيسية

تقريبا أي برنامج يستخدم الوقت. في Python ، تم تطوير مكتبة منفصلة لهذا - الوقت تستخدم لأداء مجموعة متنوعة من الإجراءات معها. لجعله يعمل ، يجب أولاً الإعلان عنه في بداية الكود. يستخدم هذا الخط لهذا:

وقت الاستيراد

دعنا نفكر في الخيارات المختلفة حول كيفية استخدام هذه الوحدة بشكل صحيح في الممارسة. 

تحديد عدد الثواني منذ الحقبة

لإنجاز هذه المهمة ، هناك وظيفة الوقت () لا يأخذ أي معاملات. قيمته المعادة هي عدد الثواني التي مرت منذ 1 يناير 1970. في بايثون ، تسمى هذه المرة بداية حقبة. على الأقل في أنظمة تشغيل عائلة Unix.

بالنسبة إلى Windows ، التاريخ هو نفسه ، ولكن قد تكون هناك مشاكل في القيم السالبة التي كانت قبل هذا التاريخ. 

المنطقة الزمنية المستخدمة هي UTC.

وقت الاستيراد

الثواني = time.time ()

طباعة ("الثواني منذ البداية =" ، الثواني)

تعقيد هذه الوظيفة هو أنها لا تعرض التاريخ بالضبط ، ولكن فقط عدد الثواني. للتحويل إلى تنسيق مألوف للجميع ، تحتاج إلى استخدام معلومات دقيقة. لهذا ، يتم استخدام الوظيفة time.ctime ().

إرجاع التاريخ والوقت بالتنسيق المعتاد

لإرجاع الوقت بالتنسيق المعتاد ، توجد طريقة time.ctime (). تشير الأقواس إلى متغير أو رقم يشير إلى عدد الثواني التي مرت منذ بداية العصر. تُرجع هذه الطريقة جميع خصائص التاريخ والوقت ، بما في ذلك التاريخ والسنة وعدد الساعات والدقائق والثواني ويوم الأسبوع.

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

هنا مقتطف رمز يوضح هذا.

وقت الاستيراد

طباعة (time.ctime ())

الثلاثاء 23 أكتوبر 10:18:23 2018

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

وقت الفصل

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

يتكون من السمات التالية.وحدة الوقت في بايثون 3. الأساليب والقوالب والأمثلة الرئيسية

انتباه! على عكس عدد من لغات البرمجة الأخرى ، يمكن أن يتراوح الشهر هنا من 1 إلى 12 ، وليس من صفر إلى 11.

إرجاع تنسيق محدد

باستخدام الوظيفة strftime () يمكنك الحصول على السنة والشهر واليوم والساعة والدقائق والثواني كل على حدة وإعادتها إلى سلسلة نصية. ثم يمكن طباعتها للمستخدم باستخدام الوظيفة مطبعة () أو معالجتها بطريقة أخرى.

كوسيطة ، يمكن للدالة أن تأخذ أي متغير يأخذ قيمة تُرجعها وظائف أخرى لهذه الوحدة. على سبيل المثال ، يمكنك نقل التوقيت المحلي إليه (سيتم مناقشته لاحقًا) ، حيث سيتم سحب البيانات اللازمة منه.

هنا هو مقتطف الشفرة حيث نقوم بذلك.

وقت الاستيراد

called_tuple = time.localtime () # get Struct_time

time_string = time.strftime («٪ m /٪ d /٪ Y،٪ H:٪ M:٪ S»، named_tuple)

طباعة (time_string)

إذا قمت بتشغيل هذا الرمز ، فسيتم عرض التاريخ والوقت الحاليين. يمكن تغيير تنسيق وتسلسل العناصر. وهم على النحو التالي:

  1. ٪ Y هي السنة.
  2. ٪ m هو الشهر.
  3. ٪ d - يوم.
  4. ٪ ح - الوقت.
  5. ٪ M - دقيقة.
  6. ٪ S - ثانية.

وفقًا لذلك ، يمكنك جعله بحيث يكون الناتج حصريًا للشهر واليوم. للقيام بذلك ، لا تحتاج ببساطة إلى إعطاء أمر لعرض السنة. أي اكتب في الصيغة أعلاه كوسيطة٪ m /٪ d ، وهذا كل شيء. أو العكس ،٪ d /٪ m. 

في الواقع ، عدد الحروف الحرفية للسلسلة أكبر بكثير. هنا جدول حيث يتم وصفها بالتفصيل.وحدة الوقت في بايثون 3. الأساليب والقوالب والأمثلة الرئيسية

قم بتأجيل سلسلة رسائل لعدد معين من الثواني

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

كوسيطة ، تستخدم الطريقة قيمة تعبر عن عدد الثواني لتأخير الخطوة التالية من الخوارزمية.

على سبيل المثال ، في هذا المقتطف ، يكون التأخير 10 ثوانٍ.

وقت الاستيراد

وقفة = 10

طباعة («بدأ البرنامج ...»)

time.sleep (وقفة)

طباعة (str (وقفة) + »ثواني مرت.»)

نتيجة لذلك ، سوف نحصل على هذا:

بدأ البرنامج ...

10 ثواني مرت.

كما نرى من الإخراج ، أبلغ البرنامج أولاً أنه قد بدأ. وبعد عشر ثوان كتبت أن هذا الوقت قد مضى.

تتيح لك الوظيفة تحديد مدة الإيقاف المؤقت بالملي ثانية. للقيام بذلك ، نستخدم القيم الكسرية لوسيطة الوظيفة ينام. على سبيل المثال ، 0,1،100. هذا يعني أن التأخير سيكون XNUMX مللي ثانية.

احصل على التوقيت المحلي

باستخدام الدالة localtime () ، يحصل البرنامج على عدد الثواني منذ بداية العصر في منطقة زمنية محددة. 

دعنا نعطي مثالا على كود من أجل الوضوح.

وقت الاستيراد

النتيجة = الوقت المحلي (1575721830)

طباعة ("نتيجة:" ، نتيجة)

طباعة («nгод:»، result.tm_year)

طباعة («tm_hour:»، result.tm_hour)

إرجاع Struct_time بالتوقيت العالمي المنسق بناءً على عدد الثواني منذ البداية

يتم تحقيق هذه المهمة باستخدام time.gmtime (). طريقة. سيكون الأمر أكثر وضوحا إذا أعطينا مثالا.

وقت الاستيراد

النتيجة = time.gmtime (1575721830)

طباعة ("نتيجة:" ، نتيجة)

طباعة («nгод:»، result.tm_year)

طباعة («tm_hour:»، result.tm_hour)

إذا قمت بتشغيل تسلسل الإجراءات هذا ، فسيتم عرض مجموعة من العناصر المتعلقة بالوقت والسنة والمنطقة الزمنية.

أعد عدد الثواني منذ بداية العصر بالتحويل التلقائي إلى التوقيت المحلي

إذا واجهت مثل هذه المهمة ، فسيتم تنفيذها باستخدام الطريقة mktime ()، الذي يأخذ الوقت الهيكل. بعد ذلك ، يقوم بتنفيذ الإجراء العكسي للوظيفة الوقت المحلي(). أي أنه يحول الوقت وفقًا للمنطقة الزمنية المحلية إلى عدد الثواني التي مرت منذ بداية العصر ، مع ضبطه وفقًا للمنطقة الزمنية.

وظائف mktime () و localtime () متشابكة بشكل وثيق. يوضح مقتطف الشفرة هذا بوضوح. دعونا نلقي نظرة عليه لفهم كيفية عمله بشكل أعمق. 

وقت الاستيراد

ثواني = 1575721830

# يُرجع الهيكل_تيمي

ر = الوقت المحلي (بالثواني)

طباعة («t1:«، t)

# إرجاع ثوانٍ من Struct_time

s = time.mktime (t)

طباعة («ns:» ، ثواني)

نرى أن المتغير ثواني تم تخصيص 1575721830 ثانية منذ العهد. أولاً ، يحصل البرنامج على التاريخ الدقيق والوقت والمعلمات الأخرى ، بناءً على هذه القيمة ، وضعها في متغير t، ثم يحول محتوياته إلى متغير s.

بعد ذلك يتفوق على سطر جديد ويعرض عدد الثواني في وحدة التحكم. يمكنك التحقق من أنه سيكون نفس الرقم الذي تم تخصيصه لمتغير الثواني.

تاريخ الإخراج من 9 أرقام تشير إلى وقت الهيكل

لنفترض أن لدينا 9 أرقام تمثل السنة والشهر والتاريخ ويوم الأسبوع وعدد من القيم الأخرى ، وعلينا دمجها في سلسلة واحدة. لهذا ، يتم استخدام الوظيفة asctime (). تقبل أو جاهزة الوقت الهيكل ، أو أي مجموعة أخرى مكونة من 9 قيم تشير إلى نفس القيم. بعد ذلك ، يتم إرجاع سلسلة ، وهي التاريخ والوقت وعدد من المعلمات الأخرى. 

من الملائم جدًا استخدام هذه الطريقة من أجل إحضار بيانات مختلفة يحددها المستخدم في متغير واحد..

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

الحصول على الوقت والتاريخ بناءً على سلسلة Python

لنفترض أن المستخدم قد حدد بيانات متباينة ، ونحن بحاجة إلى دمجها في سطر واحد بالتنسيق الذي أدخله الشخص ، ثم عمل نسخة إلى متغير آخر ، وإعادة بنائها في تنسيق قياسي هناك. لهذا ، يتم استخدام الوظيفة time.strptime ().

يأخذ متغيرًا يتم فيه تحديد هذه القيمة ، ويعيد ما هو مألوف لدينا بالفعل الوقت الهيكل.

من أجل الوضوح ، سنكتب مثل هذا البرنامج.

وقت الاستيراد

time_string = «15 يونيو 2019»

النتيجة = time.strptime (time_string، «٪ d٪ B،٪ Y»)

طباعة (نتيجة)

خمن ماذا سيكون الناتج؟ حاول التخمين دون النظر إلى المحصلة النهائية. ثم تحقق من الإجابة.

time.struct_time (tm_year = 2019، tm_mon = 6، tm_mday = 15، tm_hour = 0، tm_min = 0، tm_sec = 0، tm_wday = 5، tm_yday = 166، tm_isdst = -1)

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

  1. قم بإيقاف تنفيذ البرنامج لفترة محددة من الوقت.
  2. اعرض الوقت الذي مضى منذ الحقبة بالثواني. يمكن استخدام هذه المعلومات لتلخيص الوقت أو إجراء عمليات حسابية أخرى عليه.
  3. قم بالتحويل إلى تنسيق مناسب. علاوة على ذلك ، يمكن للمبرمج نفسه تحديد العناصر التي سيتم عرضها وبأي تسلسل. 

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

اترك تعليق