Python ۾ ٽائيم ماڊل 3. مکيه طريقا، ٽيمپليٽ، مثال

تقريبن ڪو به پروگرام وقت استعمال ڪري ٿو. پٿون ۾ ان لاءِ الڳ لائبريري ٺاهي وئي آهي. وقتان سان گڏ مختلف عملن کي انجام ڏيڻ لاء استعمال ڪيو ويو. ان کي ڪم ڪرڻ لاء، ان کي پهريان ڪوڊ جي شروعات ۾ اعلان ڪيو وڃي. هن لائن لاء استعمال ڪيو ويندو آهي:

درآمد جو وقت

اچو ته مختلف اختيارن تي غور ڪريون ته هن ماڊل کي عملي طور تي ڪيئن استعمال ڪجي. 

دور کان وٺي سيڪنڊن جو تعداد طئي ڪرڻ

هن ڪم کي پورو ڪرڻ لاء، اتي هڪ فنڪشن آهي وقت() جيڪو ڪو به پيرا ميٽر نٿو وٺي. ان جي واپسي جو قدر آهي ته 1 جنوري 1970ع کان پوءِ ڪيترا سيڪنڊ گذري ويا آهن. پٿون ۾، هن وقت کي epoch جي شروعات سڏيو ويندو آهي. گهٽ ۾ گهٽ يونڪس خاندان جي آپريٽنگ سسٽم ۾.

ونڊوز جي طور تي، تاريخ ساڳي آهي، پر شايد منفي قدرن سان مسئلا ٿي سگهن ٿيون جيڪي هن تاريخ کان اڳ هئا. 

استعمال ٿيل ٽائيم زون UTC آهي.

درآمد جو وقت

سيڪنڊ = time.time()

پرنٽ ("سيڪنڊ کان وٺي دور ="، سيڪنڊ)

هن فنڪشن جي پيچيدگي اها آهي ته اهو صحيح طور تي تاريخ نه ڏيکاريندو آهي، پر صرف سيڪنڊن جو تعداد. هر ڪنهن کي واقف فارميٽ ۾ تبديل ڪرڻ لاء، توهان کي درست معلومات استعمال ڪرڻ جي ضرورت آهي. هن لاء، فنڪشن استعمال ڪيو ويندو آهي time.ctime().

واپسي جي تاريخ، وقت معمول جي شڪل ۾

عام شڪل ۾ وقت واپس ڪرڻ لاء، اتي هڪ طريقو آهي time.ctime(). بریکٹ هڪ متغير يا هڪ انگ ظاهر ڪري ٿو جيڪو سيڪنڊن جو تعداد ڏيکاري ٿو جيڪي دور جي شروعات کان گذري ويا آهن. اهو طريقو سڀني تاريخن ۽ وقت جي خاصيتن کي واپس ڏئي ٿو، بشمول تاريخ، سال، ڪلاڪن جو تعداد، منٽ، سيڪنڊ، ۽ هفتي جو ڏينهن.

هي فنڪشن بغير دليلن جي استعمال ڪري سگهجي ٿو. انهي حالت ۾، اهو موجوده تاريخ، وقت، ۽ انهي تي موٽائي ٿو.

هتي هڪ ڪوڊ جو ٽڪرو آهي جيڪو هن کي ظاهر ڪري ٿو.

درآمد جو وقت

پرنٽ (time.ctime())

اڱارو آڪٽوبر 23 10:18:23 2018

آخري لڪير اھو آھي جيڪو ڇپيل آھي ڪنسول ڏانھن جتي پٿون مترجم ھلندو آھي. طريقو خودڪار طريقي سان حاصل ڪيل سيڪنڊن جي تعداد کي صارف جي واقف فارم ۾ فارميٽ ڪري ٿو. سچ، مٿي بيان ڪيل سڀئي عناصر گهٽ ۾ گهٽ استعمال ڪيا ويا آهن. ضابطي جي طور تي، توهان کي حاصل ڪرڻ جي ضرورت آهي يا ته صرف وقت، يا صرف اڄ جي تاريخ. هن لاء، هڪ الڳ فنڪشن استعمال ڪيو ويندو آهي - strftime(). پر ان کان اڳ اسان ان تي غور ڪريون، اسان کي ڪلاس کي پارس ڪرڻو پوندو time.struct_time.

ڪلاس وقت.struct_time

هي دليلن جو هڪ قسم آهي جنهن کي مختلف طريقن سان قبول ڪري سگهجي ٿو. ان وٽ ڪي به آپشن ناهن. اهو هڪ نالي سان انٽرفيس سان هڪ tuple آهي. سادي لفظ ۾، هن طبقي جي عناصرن تائين رسائي ڪري سگهجي ٿو ٻنهي جي نالي سان ۽ انڊيڪس نمبر ذريعي.

اهو هيٺين خاصيتن تي مشتمل آهي.Python ۾ ٽائيم ماڊل 3. مکيه طريقا، ٽيمپليٽ، مثال

ڌيان! ٻين ڪيترن ئي پروگرامنگ ٻولين جي برعڪس، هتي مهينو 1 کان 12 تائين ٿي سگهي ٿو، ۽ صفر کان 11 تائين نه.

هڪ مخصوص فارميٽ واپس

فنڪشن استعمال ڪندي strftime() توهان سال، مهينو، ڏينهن، ڪلاڪ، منٽ، سيڪنڊ انفرادي طور حاصل ڪري سگهو ٿا ۽ انهن کي ٽيڪسٽ اسٽرنگ ڏانهن واپس ڪري سگهو ٿا. پوء ان کي استعمال ڪندڙ کي پرنٽ ڪري سگهجي ٿو فنڪشن استعمال ڪندي ڇپائي () يا ٻي صورت ۾ پروسيس ٿيل.

هڪ دليل جي طور تي، هڪ فنڪشن ڪنهن به متغير کي وٺي سگھي ٿو جيڪو هن ماڊل جي ٻين ڪمن پاران واپس ڪيل قدر وٺندو آهي. مثال طور، توهان ان کي مقامي وقت منتقل ڪري سگهو ٿا (اهو بعد ۾ بحث ڪيو ويندو)، جنهن مان اهو ضروري ڊيٽا ڪڍي ڇڏيندو.

هتي ڪوڊ جو ٽڪرو آهي جتي اسان اهو ڪندا آهيون.

درآمد جو وقت

name_tuple = time.localtime() # حاصل ڪريو struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», name_tuple)

پرنٽ (time_string)

جيڪڏهن توهان هن ڪوڊ کي هلائيندا آهيو، موجوده تاريخ ۽ وقت ڏيکاري ويندي. عناصر جي شڪل ۽ ترتيب کي تبديل ڪري سگھجي ٿو. اهي هن ريت آهن:

  1. %Y سال آهي.
  2. %m مهينو آهي.
  3. %d - ڏينهن.
  4. % H - وقت.
  5. %M – منٽ.
  6. %S - سيڪنڊ.

انهي جي مطابق، توهان ان کي ٺاهي سگهو ٿا ته پيداوار خاص طور تي مهيني ۽ ڏينهن جي آهي. هن کي ڪرڻ لاء، توهان کي صرف سال ڏيکارڻ لاء حڪم ڏيڻ جي ضرورت ناهي. اهو آهي، مٿي ڏنل فارمولا ۾ هڪ دليل طور لکو %m/%d، ۽ بس. يا ان جي برعڪس، %d/%m. 

حقيقت ۾، اسٽرنگ لٽرلز جو تعداد تمام وڏو آھي. هتي هڪ ٽيبل آهي جتي اهي تفصيل سان بيان ڪيا ويا آهن.Python ۾ ٽائيم ماڊل 3. مکيه طريقا، ٽيمپليٽ، مثال

ٿريڊ کي ڪجهه سيڪنڊن لاءِ ملتوي ڪريو

هن لاء، فنڪشن استعمال ڪيو ويندو آهي سمهڻ (). پروگرامنگ جي ڪمن جو هڪ وڏو بلاڪ وقت جي گذرڻ سان لاڳاپيل آهي. ڪڏهن ڪڏهن توهان کي ڪجهه وقت لاء ايندڙ قدم کي ملتوي ڪرڻو پوندو. مثال طور، جيڪڏهن توهان کي ڊيٽابيس سان لهه وچڙ ڪرڻ جي ضرورت آهي ته پروسيس ڪرڻ لاء هڪ خاص وقت وٺندو آهي.

هڪ دليل جي طور تي، طريقو هڪ قدر استعمال ڪري ٿو جيڪو سيڪنڊن جي تعداد کي ظاهر ڪري ٿو الورورٿم کان ايندڙ قدم کي دير ڪرڻ لاء.

مثال طور، هن ٽڪري ۾، دير 10 سيڪنڊ آهي.

درآمد جو وقت

وقفو = 10

پرنٽ ("پروگرام شروع ٿيو ...")

وقت. سمهڻ (روڪ)

پرنٽ(str(pause) + » سيڪنڊ گذري ويا.»)

نتيجي طور، اسان هن کي حاصل ڪنداسين:

پروگرام شروع…

10 سيڪنڊ گذري ويا.

جيئن اسان ٻاھرين مان ڏسي سگھون ٿا، پروگرام پھرين رپورٽ ڪري ٿو ته اھو شروع ٿي چڪو آھي. ۽ ڏهن سيڪنڊن کان پوء، هوء لکيو ته هن وقت گذري ويو.

فنڪشن توهان کي milliseconds ۾ وقفي جي مدت بيان ڪرڻ جي اجازت ڏئي ٿو. هن کي ڪرڻ لاء، اسان فنڪشنل دليل جي جزوي قدر استعمال ڪندا آهيون ننڊ ۾. مثال طور، 0,1. هن جو مطلب آهي ته دير ٿي ويندي 100 مليسيڪنڊ.

مقامي وقت حاصل ڪريو

localtime() فنڪشن کي استعمال ڪندي، پروگرام هڪ مخصوص ٽائيم زون ۾ دور جي شروعات کان وٺي سيڪنڊن جو تعداد حاصل ڪري ٿو. 

اچو ته وضاحت لاء ڪوڊ جو مثال ڏيو.

درآمد جو وقت

نتيجو = time.localtime(1575721830)

پرنٽ ("نتيجو:"، نتيجو)

ڇپائي («nгод:», result.tm_year)

پرنٽ («tm_hour:»، result.tm_hour)

واپسي struct_time UTC ۾ سيڪنڊن جي تعداد جي بنياد تي دور کان وٺي

هي ڪم استعمال ڪندي حاصل ڪيو ويو آهي time.gmtime(). طريقو. جيڪڏهن اسان هڪ مثال ڏينداسين ته اهو واضح ٿيندو.

درآمد جو وقت

نتيجو = time.gmtime (1575721830)

پرنٽ ("نتيجو:"، نتيجو)

ڇپائي («nгод:», result.tm_year)

پرنٽ («tm_hour:»، result.tm_hour)

جيڪڏهن توهان عملن جي هن تسلسل کي چالو ڪيو، ته پوءِ وقت، سال ۽ ٽائم زون سان لاڳاپيل عناصر جو هڪ سيٽ ڏيکاريو ويندو.

مقامي وقت ۾ خودڪار تبديلي سان دور جي شروعات کان وٺي سيڪنڊن جو تعداد واپس ڪريو

جيڪڏهن توهان اهڙي ڪم سان منهن ڪيو آهي، اهو طريقو استعمال ڪندي لاڳو ڪيو ويو آهي mktime()، جيڪو وٺندو آهي struct_time. ان کان پوء، اهو فنڪشن جي ريورس ايڪشن کي انجام ڏئي ٿو مقامي وقت(). اھو آھي، اھو وقت کي مقامي ٽائم زون جي مطابق سيڪنڊن جي تعداد ۾ تبديل ڪري ٿو جيڪي دور جي شروعات کان گذري ويا آھن، ٽائيم زون لاء ترتيب ڏنل.

mktime() ۽ localtime() افعال ويجھي جڙيل آھن. هي ڪوڊ اسپيٽ واضح طور تي ظاهر ڪري ٿو. اچو ته ان تي هڪ نظر وجهون ته وڌيڪ تفصيل سان سمجھو ته اهو ڪيئن ڪم ڪري ٿو. 

درآمد جو وقت

سيڪنڊ = 1575721830

# واپسي struct_time

t = وقت. مقامي وقت (سيڪنڊ)

پرنٽ («t1: «، t)

# struct_time کان سيڪنڊن کي موٽائي ٿو

s = time.mktime(t)

پرنٽ («ns:»، سيڪنڊ)

اسان ڏسون ٿا ته متغير سيڪنڊ مقرر ڪيو ويو آهي 1575721830 سيڪنڊن کان وٺي دور. پهريون، پروگرام صحيح تاريخ، وقت ۽ ٻيا پيٽرول حاصل ڪري ٿو، هن قيمت جي بنياد تي، ان کي متغير ۾ رکي t، ۽ پوءِ ان جي مواد کي هڪ متغير ۾ بدلائي ٿو s.

ان کان پوء هڪ نئين لائين بند ڪري ٿو ۽ ڪنسول ۾ سيڪنڊن جو تعداد ڏيکاري ٿو. توهان چيڪ ڪري سگهو ٿا ته اهو ساڳيو نمبر هوندو جيڪو سيڪنڊ متغير کي لڳايو ويو هو.

9 نمبرن مان نڪرڻ جي تاريخ جيڪا struct_time ڏانهن اشارو ڪري ٿي

فرض ڪريو ته اسان وٽ 9 انگ آھن جيڪي سال، مھينا، تاريخ، ھفتي جو ڏينھن ۽ ٻين قدرن جي نمائندگي ڪن ٿا، ۽ اسان کي انھن کي ھڪڙي تار ۾ گڏ ڪرڻ جي ضرورت آھي. هن لاء، فنڪشن استعمال ڪيو ويندو آهي asctime(). هوء قبول ڪري ٿي يا تيار آهي ساخت_وقت، يا 9 قدرن جو ڪو ٻيو ٽوپل جيڪو ساڳيو آهي. ان کان پوء، هڪ اسٽرنگ واپس آيو آهي، جيڪو هڪ تاريخ، وقت، ۽ ٻين پيٽرولن جو تعداد آهي. 

اهو طريقو استعمال ڪرڻ تمام آسان آهي ته جيئن مختلف صارف جي مخصوص ڊيٽا کي هڪ واحد متغير ۾ آڻڻ لاء..

مثال طور، اهو هڪ پروگرام ٿي سگهي ٿو جتي صارف الڳ الڳ بيان ڪري ٿو ڏينهن، مهينو، سال، هفتي جو ڏينهن، ۽ هڪ واقعي جي رجسٽريشن جي حوالي سان ٻين ڊيٽا. ان کان پوء، حاصل ڪيل معلومات ڊيٽابيس ۾ داخل ڪئي وئي ۽ پوء ٻئي شخص کي جاري ڪيو ويو جيڪو ان جي درخواست ڪري ٿو.

Python string جي بنياد تي وقت ۽ تاريخ حاصل ڪرڻ

فرض ڪريو استعمال ڪندڙ مختلف ڊيٽا کي بيان ڪيو آهي، ۽ اسان کي انهن کي هڪ قطار ۾ ان فارميٽ ۾ گڏ ڪرڻ جي ضرورت آهي جيڪا شخص داخل ڪئي هئي، ۽ پوء هڪ ڪاپي ٺاهي ٻئي متغير ڏانهن، ۽ ان کي معياري شڪل ۾ ٻيهر ٺاهيو. هن لاء، فنڪشن استعمال ڪيو ويندو آهي time.strptime().

اهو هڪ متغير وٺندو آهي جنهن ۾ هي قدر بيان ڪيو ويو آهي، ۽ اسان کي اڳ ۾ ئي واقف موٽائي ٿو struct_time.

وضاحت لاء، اسان اهڙي پروگرام لکنداسين.

درآمد جو وقت

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)

هڪ لفظ ۾، Python ۾ تاريخن ۽ وقتن سان ڪم ڪرڻ ڏکيو ناهي. اهو انهن هدايتن تي عمل ڪرڻ لاء ڪافي آهي، ۽ هر شيء ڪم ڪندو. لائبريري استعمال ڪندي وقت استعمال ڪندڙ کي وقت سان گڏ ڪم ڪرڻ جا موقعا حاصل ٿين ٿا، جھڙوڪ:

  1. پروگرام جي عمل کي مخصوص وقت تائين معطل ڪريو.
  2. اهو وقت ڏيکاريو جيڪو دور کان گذري چڪو آهي، سيڪنڊن ۾. اها معلومات وقت کي گڏ ڪرڻ يا ان تي ٻيا رياضياتي عمل انجام ڏيڻ لاءِ استعمال ٿي سگهي ٿي.
  3. هڪ آسان فارميٽ ۾ تبديل ڪريو. ان کان علاوه، پروگرامر پاڻ سيٽ ڪري سگهي ٿو ته ڪهڙا عناصر ڏيکاريا ويندا ۽ ڪهڙي ترتيب ۾. 

اتي پڻ ڪيترائي امڪان آھن، پر اڄ اسان سڀ کان وڌيڪ بنيادي تجزيو ڪيو آھي. اهي لڳ ڀڳ ڪنهن به پروگرام ۾ ڪم ايندا جيڪي ڪنهن نه ڪنهن طرح وقت سان ڪم ڪن ٿا. سدا خوشقسمت رهو.

جواب ڇڏي وڃو