Python дахь цагийн модуль 3. Үндсэн аргууд, загварууд, жишээнүүд

Бараг ямар ч програм цагийг ашигладаг. Python-д үүнд зориулж тусдаа номын сан боловсруулсан - цаг хугацаатүүнтэй хамт олон төрлийн үйлдэл хийхэд ашигладаг. Үүнийг ажиллуулахын тулд эхлээд кодын эхэнд зарласан байх ёстой. Үүний тулд энэ мөрийг ашигладаг:

импортын хугацаа

Энэ модулийг практикт хэрхэн зөв ашиглах талаар янз бүрийн хувилбаруудыг авч үзье. 

Эрин үеэс хойшхи секундын тоог тодорхойлох

Энэ даалгаврыг биелүүлэхийн тулд функц байдаг цаг хугацаа() ямар ч параметр авдаггүй. Үүний буцах утга нь 1 оны 1970-р сарын XNUMX-ээс хойш хэдэн секунд өнгөрснийг илэрхийлнэ. Python хэл дээр энэ цагийг эриний эхлэл гэж нэрлэдэг. Наад зах нь Unix гэр бүлийн үйлдлийн системд.

Windows-ийн хувьд огноо нь ижил боловч энэ өдрөөс өмнө байсан сөрөг утгатай холбоотой асуудал байж магадгүй юм. 

Ашигласан цагийн бүс нь UTC юм.

импортын хугацаа

секунд = цаг.цаг()

хэвлэх("Эх үеэс хойшхи секунд =", секунд)

Энэ функцын нарийн төвөгтэй байдал нь яг огноог харуулахгүй, зөвхөн секундын тоог харуулдаг. Хүн бүрт танил болсон формат руу хөрвүүлэхийн тулд та үнэн зөв мэдээллийг ашиглах хэрэгтэй. Үүний тулд функцийг ашигладаг time.ctime().

Огноо, цагийг ердийн форматаар буцаана

Ердийн форматаар цагийг буцаахын тулд арга бий time.ctime(). Хаалт нь хувьсагч эсвэл эрин эхэлснээс хойш хэдэн секунд өнгөрснийг харуулсан тоог заана. Энэ арга нь огноо, жил, цаг, минут, секунд, долоо хоногийн өдөр зэрэг бүх огноо, цагийн шинж чанарыг буцаана.

Мөн энэ функцийг аргументгүйгээр ашиглаж болно. Энэ тохиолдолд одоогийн огноо, цаг гэх мэтийг буцаана.

Үүнийг харуулсан кодын хэсэг энд байна.

импортын хугацаа

хэвлэх(цаг хугацаа.ctime())

23 оны 10-р сарын 18-ны Мягмар гараг 23:2018:XNUMX

Сүүлийн мөр нь Python орчуулагч ажиллаж байгаа консол дээр хэвлэгдсэн зүйл юм. Энэ арга нь хүлээн авсан секундын тоог автоматаар хэрэглэгчийн танил хэлбэрт оруулдаг. Үнэн, дээр дурдсан бүх элементүүдийг бараг ашигладаггүй. Дүрмээр бол та зөвхөн цаг, эсвэл зөвхөн өнөөдрийн огноог авах хэрэгтэй. Үүний тулд тусдаа функцийг ашигладаг - strftime(). Гэхдээ бид үүнийг авч үзэхээсээ өмнө ангиудыг задлан шинжлэх хэрэгтэй цаг.бүтцийн_цаг.

ангийн цаг.бүтцийн_цаг

Энэ бол олон янзын аргаар хүлээн зөвшөөрч болох аргументуудын ангилал юм. Үүнд ямар ч сонголт байхгүй. Энэ нь нэрлэсэн интерфейстэй tuple юм. Энгийнээр хэлбэл, энэ ангийн элементүүдэд нэр болон индексийн дугаараар хандах боломжтой.

Энэ нь дараах шинж чанаруудаас бүрдэнэ.Python дахь цагийн модуль 3. Үндсэн аргууд, загварууд, жишээнүүд

Анхаар! Бусад олон програмчлалын хэлнүүдээс ялгаатай нь энд сар нь 1-ээс 12 хүртэл байж болох бөгөөд тэгээс 11 хүртэл биш юм.

Тодорхой форматыг буцаах

Функцийг ашиглах strftime() та жил, сар, өдөр, цаг, минут, секундийг тус тусад нь авч, текстийн мөрөнд буцааж өгөх боломжтой. Дараа нь функцийг ашиглан хэрэглэгчдэд хэвлэж болно хэвлэх () эсвэл өөр аргаар боловсруулсан.

Аргумент болгон функц нь энэ модулийн бусад функцээр буцаасан утгыг авдаг аливаа хувьсагчийг авч болно. Жишээлбэл, та орон нутгийн цагийг түүнд шилжүүлж болно (үүнийг дараа хэлэлцэх болно), үүнээс шаардлагатай өгөгдлийг гаргаж авах болно.

Энд бид үүнийг хийдэг кодын хэсэг юм.

импортын хугацаа

name_tuple = time.localtime() # struct_time авна

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», нэртэй_tuple)

хэвлэх(цаг_мөр)

Хэрэв та энэ кодыг ажиллуулбал одоогийн огноо, цаг харагдах болно. Элементүүдийн хэлбэр, дарааллыг өөрчилж болно. Тэдгээр нь дараах байдалтай байна.

  1. %Y бол жил.
  2. %m бол сар.
  3. %d – өдөр.
  4. %H - цаг.
  5. %M – минут.
  6. %S – секунд.

Үүний дагуу та гаралт нь зөвхөн сар, өдөр байхаар үүнийг хийж болно. Үүнийг хийхийн тулд та зүгээр л оныг харуулах тушаал өгөх шаардлагагүй. Өөрөөр хэлбэл, дээрх томьёонд %m/%d аргумент болгон бич, тэгээд л болоо. Эсвэл эсрэгээр, %d/%m. 

Үнэн хэрэгтээ, мөрийн литералуудын тоо илүү их байдаг. Тэдгээрийг нарийвчлан тайлбарласан хүснэгт энд байна.Python дахь цагийн модуль 3. Үндсэн аргууд, загварууд, жишээнүүд

Сэдвийг тодорхой секундын турш хойшлуул

Үүний тулд функцийг ашигладаг унтах (). Програмчлалын даалгавруудын нэлээд том хэсэг нь цаг хугацаа өнгөрөхтэй холбоотой байдаг. Заримдаа та дараагийн алхамаа тодорхой хугацаагаар хойшлуулах хэрэгтэй болдог. Жишээлбэл, боловсруулахад тодорхой цаг хугацаа шаардагддаг мэдээллийн сантай харилцах шаардлагатай бол.

Аргумент болгон энэ арга нь алгоритмаас дараагийн алхамыг хойшлуулах секундын тоог илэрхийлдэг утгыг ашигладаг.

Жишээлбэл, энэ хэсэгчилсэн хэсэгт саатал 10 секунд байна.

импортын хугацаа

завсарлага = 10

хэвлэх("Програм эхэлсэн...")

цаг.унтах(түр зогсоох)

хэвлэх(str(pause) + » секунд өнгөрлөө.»)

Үүний үр дүнд бид дараахь зүйлийг авах болно.

Хөтөлбөр эхэлсэн…

10 секунд өнгөрлөө.

Гаралтаас харахад програм эхлээд эхэлснийг мэдээлдэг. Арван секундын дараа тэр энэ цаг өнгөрсөн гэж бичжээ.

Функц нь түр зогсоох хугацааг миллисекундээр тодорхойлох боломжийг танд олгоно. Үүнийг хийхийн тулд бид функцийн аргументийн бутархай утгыг ашигладаг унтах Жишээлбэл, 0,1. Энэ нь саатал 100 миллисекунд болно гэсэн үг юм.

Орон нутгийн цагийг аваарай

Localtime() функцийг ашиглан програм нь тодорхой цагийн бүсэд эрин эхэлснээс хойшхи хэдэн секундын тоог авдаг. 

Тодорхой болгох үүднээс жишээ код өгье.

импортын хугацаа

үр дүн = цаг.localtime(1575721830)

хэвлэх("үр дүн:", үр дүн)

хэвлэх(«ngod:», үр дүн.tm_year)

хэвлэх(«tm_цаг:», үр дүн.tm_цаг)

Эрин үеэс хойшхи секундын тоонд үндэслэн struct_time-г UTC-д буцаана

Энэ даалгаварыг time.gmtime() ашиглан гүйцэтгэдэг. арга. Хэрэв жишээ татвал илүү ойлгомжтой болно.

импортын хугацаа

үр дүн = time.gmtime(1575721830)

хэвлэх("үр дүн:", үр дүн)

хэвлэх(«ngod:», үр дүн.tm_year)

хэвлэх(«tm_цаг:», үр дүн.tm_цаг)

Хэрэв та энэ үйлдлийн дарааллыг асаавал цаг, жил, цагийн бүстэй холбоотой элементүүдийн багц гарч ирнэ.

Орон нутгийн цаг руу автоматаар хөрвүүлснээр эрин эхэлснээс хойшхи секундын тоог буцаана уу

Хэрэв та ийм даалгавартай тулгарвал энэ аргыг ашиглан хэрэгжүүлдэг mktime(), шаарддаг бүтцийн_цаг. Үүний дараа энэ нь функцийн урвуу үйлдлийг гүйцэтгэдэг орон нутгийн цаг(). Өөрөөр хэлбэл, энэ нь тухайн цагийг орон нутгийн цагийн бүсэд тохируулан тухайн эрин эхэлснээс хойш өнгөрсөн секундын тоо болгон хувиргадаг.

mktime() болон localtime() функцууд хоорондоо нягт холбоотой. Энэ кодын хэсэг үүнийг тодорхой харуулж байна. Энэ нь хэрхэн ажилладаг талаар илүү гүнзгий ойлгохын тулд үүнийг харцгаая. 

импортын хугацаа

секунд = 1575721830

# бүтцийн цагийг буцаана

t = цаг.орон нутгийн цаг(секунд)

хэвлэх(«t1: «, t)

# нь бүтцийн_цагаас секундийг буцаана

s = цаг.mktime(t)

хэвлэх(«ns:», секунд)

хувьсагч гэдгийг бид харж байна секунд эрин үеэс хойш 1575721830 секунд хуваарилагдсан. Нэгдүгээрт, програм нь яг огноо, цаг болон бусад параметрүүдийг авдаг бөгөөд энэ утгыг үндэслэн хувьсагч руу оруулна. t, дараа нь түүний агуулгыг хувьсагч болгон хувиргадаг s.

Үүний дараа шинэ мөр гарч, консол дахь секундын тоог харуулна. Энэ нь секундын хувьсагчид оноогдсон дугаартай ижил байх эсэхийг шалгаж болно.

struct_time-д хамаарах 9 тооны гаралтын огноо

Бидэнд жил, сар, огноо, долоо хоногийн өдөр болон бусад хэд хэдэн утгыг илэрхийлсэн 9 тоо байгаа бөгөөд бид тэдгээрийг нэг мөрөнд нэгтгэх хэрэгтэй гэж бодъё. Үүний тулд функцийг ашигладаг asctime(). Тэр хүлээж авах эсвэл бэлэн бүтцийн_цаг, эсвэл ижил утгатай 9 утгын өөр ямар ч багц. Үүний дараа огноо, цаг болон бусад олон параметр бүхий мөрийг буцаана. 

Хэрэглэгчийн тодорхойлсон ялгаатай өгөгдлийг нэг хувьсагч болгон оруулахын тулд энэ аргыг ашиглах нь маш тохиромжтой..

Жишээлбэл, энэ нь хэрэглэгч өдөр, сар, жил, долоо хоногийн өдөр болон үйл явдлын бүртгэлтэй холбоотой бусад өгөгдлийг тусад нь зааж өгдөг програм байж болно. Үүний дараа хүлээн авсан мэдээллийг мэдээллийн санд оруулаад дараа нь хүссэн өөр хүнд олгоно.

Python стринг дээр суурилсан цаг, огноог авч байна

Хэрэглэгч өөр өөр өгөгдлийг зааж өгсөн гэж бодъё, бид тэдгээрийг тухайн хүний ​​оруулсан форматын дагуу нэг мөрөнд нэгтгэж, дараа нь өөр хувьсагч руу хуулбарлаж, стандарт формат руу дахин бүтээх хэрэгтэй. Үүний тулд функцийг ашигладаг time.strptime().

Энэ нь энэ утгыг заасан хувьсагчийг авч, бидэнд аль хэдийн танил болсоныг буцаана бүтцийн_цаг.

Тодорхой болгохын тулд бид ийм програм бичих болно.

импортын хугацаа

time_string = «15 оны 2019-р сарын XNUMX»

үр дүн = time.strptime(цаг_мөр, «%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. Тохиромжтой формат руу хөрвүүлэх. Түүнээс гадна програмист өөрөө аль элементүүдийг ямар дарааллаар харуулахыг тохируулах боломжтой. 

Үүнээс гадна хэд хэдэн боломжууд байдаг, гэхдээ өнөөдөр бид хамгийн үндсэн хувилбаруудад дүн шинжилгээ хийлээ. Тэд цаг хугацааны хувьд ямар нэгэн байдлаар ажилладаг бараг бүх хөтөлбөрт хэрэг болно. Амжилт хүсье.

хариу үлдээх