पाइथन ३ मा समय मोड्युल। मुख्य विधिहरू, टेम्प्लेटहरू, उदाहरणहरू

लगभग कुनै पनि कार्यक्रम समय प्रयोग गर्दछ। पाइथनमा यसको लागि छुट्टै पुस्तकालय बनाइएको छ- समययसको साथ विभिन्न कार्यहरू गर्न प्रयोग गरिन्छ। यसलाई काम गर्नको लागि, यो पहिले कोडको सुरुमा घोषणा गर्नुपर्छ। यो लाइन यसको लागि प्रयोग गरिन्छ:

आयात समय

यस मोड्युललाई व्यवहारमा कसरी प्रयोग गर्ने भन्ने बारे विभिन्न विकल्पहरू विचार गरौं। 

युगदेखि सेकेन्डको संख्या निर्धारण गर्दै

यो कार्य पूरा गर्न, त्यहाँ एक प्रकार्य छ समय() जसले कुनै प्यारामिटर लिदैन। यसको फिर्ता मूल्य जनवरी 1, 1970 देखि कति सेकेन्ड बितिसकेको छ। पाइथनमा, यो समयलाई युगको सुरुवात भनिन्छ। कम्तिमा युनिक्स परिवारको अपरेटिङ सिस्टमहरूमा।

विन्डोजको लागि, मिति एउटै हो, तर त्यहाँ नकारात्मक मानहरूसँग समस्या हुन सक्छ जुन यो मिति अघि थियो। 

प्रयोग गरिएको समय क्षेत्र UTC हो।

आयात समय

सेकेन्ड = time.time()

प्रिन्ट ("सेकेन्ड देखि युग =", सेकेन्ड)

यस प्रकार्यको जटिलता यो हो कि यसले ठ्याक्कै मिति प्रदर्शन गर्दैन, तर सेकेन्डको संख्या मात्र। सबैलाई परिचित ढाँचामा रूपान्तरण गर्न, तपाईंले सही जानकारी प्रयोग गर्न आवश्यक छ। यसको लागि, प्रकार्य प्रयोग गरिन्छ time.ctime()।

सामान्य ढाँचामा मिति, समय फर्काउँदै

सामान्य ढाँचामा समय फर्काउन, त्यहाँ एक विधि छ time.ctime()। कोष्ठकहरूले युगको सुरुदेखि बितिसकेका सेकेन्डहरूको सङ्ख्या जनाउने चल वा सङ्ख्यालाई सङ्केत गर्छ। यो विधिले मिति, वर्ष, घण्टा, मिनेट, सेकेन्ड, र हप्ताको दिन सहित सबै मिति र समय विशेषताहरू फर्काउँछ।

यो प्रकार्य पनि तर्क बिना प्रयोग गर्न सकिन्छ। यस अवस्थामा, यसले हालको मिति, समय, र यस्तै कुराहरू फर्काउँछ।

यहाँ एउटा कोड स्निपेट छ जुन यो देखाउँछ।

आयात समय

छाप्नुहोस्(time.ctime())

मङ्गल 23 अक्टोबर 10:18:23 2018

अन्तिम पङ्क्ति भनेको कन्सोलमा छापिएको छ जहाँ पाइथन अनुवादक चलिरहेको छ। विधिले स्वचालित रूपमा सेकेन्डको प्राप्त संख्यालाई प्रयोगकर्ता-परिचित फारममा ढाँचा बनाउँछ। साँचो, माथि वर्णन गरिएका सबै तत्वहरू विरलै प्रयोग गरिन्छ। नियमको रूपमा, तपाईंले या त केवल समय, वा केवल आजको मिति प्राप्त गर्न आवश्यक छ। यसको लागि, एक अलग प्रकार्य प्रयोग गरिन्छ - strftime()। तर हामीले यसलाई विचार गर्नु अघि, हामीले कक्षालाई पार्स गर्न आवश्यक छ time.struct_time।

class time.struct_time

यो विधिहरूको दायराद्वारा स्वीकार गर्न सकिने तर्कहरूको वर्ग हो। यसको कुनै विकल्प छैन। यो नामित इन्टरफेस संग एक tuple छ। सरल शब्दमा भन्नुपर्दा, यस वर्गका तत्वहरूलाई नाम र अनुक्रमणिका नम्बरद्वारा पहुँच गर्न सकिन्छ।

यसले निम्न विशेषताहरू समावेश गर्दछ।पाइथन ३ मा समय मोड्युल। मुख्य विधिहरू, टेम्प्लेटहरू, उदाहरणहरू

ध्यान! अन्य प्रोग्रामिङ भाषाहरूको संख्याको विपरीत, यहाँ महिना 1 देखि 12 सम्म हुन सक्छ, र शून्य देखि 11 सम्म होइन।

एक विशिष्ट ढाँचा फिर्ता गर्दै

प्रकार्य प्रयोग गर्दै strftime() तपाईले वर्ष, महिना, दिन, घण्टा, मिनेट, सेकेन्डहरू व्यक्तिगत रूपमा प्राप्त गर्न सक्नुहुन्छ र तिनीहरूलाई पाठ स्ट्रिङमा फर्काउन सक्नुहुन्छ। त्यसपछि यो प्रकार्य प्रयोग गरेर प्रयोगकर्तालाई प्रिन्ट गर्न सकिन्छ छाप्नुहोस् () वा अन्यथा प्रशोधित।

तर्कको रूपमा, एक प्रकार्यले कुनै पनि चर लिन सक्छ जुन यो मोड्युलको अन्य प्रकार्यहरूद्वारा फर्काइएको मान लिन्छ। उदाहरण को लागी, तपाइँ यसलाई स्थानीय समय स्थानान्तरण गर्न सक्नुहुन्छ (यसलाई पछि छलफल गरिनेछ), जसबाट यो आवश्यक डाटा बाहिर निकाल्नेछ।

यहाँ कोड स्निपेट छ जहाँ हामी यो गर्छौं।

आयात समय

name_tuple = time.localtime() # struct_time प्राप्त गर्नुहोस्

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

छाप्नुहोस्(समय_स्ट्रिङ)

यदि तपाईंले यो कोड चलाउनुभयो भने, हालको मिति र समय प्रदर्शित हुनेछ। तत्वहरूको ढाँचा र अनुक्रम परिवर्तन गर्न सकिन्छ। तिनीहरु यस प्रकार छन्:

  1. %Y वर्ष हो।
  2. %m महिना हो।
  3. %d - दिन।
  4. % H - समय।
  5. %M - मिनेट।
  6. %S - सेकेन्ड।

तदनुसार, तपाईले यसलाई बनाउन सक्नुहुन्छ ताकि आउटपुट महिना र दिनको मात्र हो। यो गर्नको लागि, तपाईले केवल वर्ष प्रदर्शन गर्न आदेश दिन आवश्यक पर्दैन। त्यो हो, माथिको सूत्रमा तर्क %m/%d को रूपमा लेख्नुहोस्, र यो हो। वा यसको विपरित, %d/%m। 

वास्तवमा, स्ट्रिङ लिटरलहरूको संख्या धेरै ठूलो छ। यहाँ एउटा तालिका छ जहाँ तिनीहरू विस्तृत रूपमा वर्णन गरिएको छ।पाइथन ३ मा समय मोड्युल। मुख्य विधिहरू, टेम्प्लेटहरू, उदाहरणहरू

सेकेन्डको निश्चित संख्याको लागि थ्रेड स्थगित गर्नुहोस्

यसको लागि, प्रकार्य प्रयोग गरिन्छ सुत्नु ()। प्रोग्रामिङ कार्यहरूको एकदम ठूलो ब्लक समयको साथ सम्बन्धित छ। कहिलेकाहीँ तपाईंले निश्चित समयको लागि अर्को चरण स्थगित गर्नुपर्नेछ। उदाहरण को लागी, यदि तपाइँ डाटाबेस संग अन्तरक्रिया गर्न आवश्यक छ जुन प्रक्रिया को लागी एक निश्चित समय लाग्छ।

तर्कको रूपमा, विधिले एल्गोरिदमबाट अर्को चरण ढिलाइ गर्न सेकेन्डको संख्या व्यक्त गर्ने मान प्रयोग गर्दछ।

उदाहरण को लागी, यो स्निपेट मा, ढिलाइ 10 सेकेन्ड छ।

आयात समय

पज = १०

प्रिन्ट ("कार्यक्रम सुरु...")

समय (पज)

छाप्नुहोस्(str(पज) + »सेकेन्ड बित्यो।»)

नतिजाको रूपमा, हामी यो प्राप्त गर्नेछौं:

कार्यक्रम सुरु…

10 सेकेन्ड बित्यो।

हामी आउटपुटबाट देख्न सक्छौं, कार्यक्रमले पहिले रिपोर्ट गर्छ कि यो सुरु भएको छ। र दस सेकेन्ड पछि, उनले लेखे कि यो समय बितिसकेको थियो।

प्रकार्यले तपाईंलाई पजको अवधि मिलिसेकेन्डमा निर्दिष्ट गर्न अनुमति दिन्छ। यो गर्नका लागि, हामी प्रकार्य तर्कको आंशिक मानहरू प्रयोग गर्छौं सुत्नु उदाहरण को लागी, 0,1। यसको मतलब ढिलाइ १०० मिलिसेकेन्ड हुनेछ।

स्थानीय समय प्राप्त गर्नुहोस्

लोकलटाइम() प्रकार्य प्रयोग गरेर, कार्यक्रमले निश्चित समय क्षेत्रमा युग सुरु भएदेखि सेकेन्डको सङ्ख्या प्राप्त गर्छ। 

स्पष्टताको लागि एउटा उदाहरण कोड दिऔं।

आयात समय

परिणाम = time.localtime(1575721830)

प्रिन्ट ("नतिजा:", परिणाम)

छाप्नुहोस्(«nгод:», result.tm_year)

छाप्नुहोस्(«tm_hour:», result.tm_hour)

Epoch पछि सेकेन्डको संख्यामा आधारित UTC मा struct_time फर्काउनुहोस्

यो कार्य time.gmtime() प्रयोग गरेर हासिल गरिएको छ। विधि। उदाहरण दिएमा प्रष्ट हुनेछ।

आयात समय

परिणाम = time.gmtime (1575721830)

प्रिन्ट ("नतिजा:", परिणाम)

छाप्नुहोस्(«nгод:», result.tm_year)

छाप्नुहोस्(«tm_hour:», result.tm_hour)

यदि तपाईंले कार्यहरूको यो क्रम सक्रिय गर्नुभयो भने, समय, वर्ष र समय क्षेत्रसँग सम्बन्धित तत्वहरूको सेट प्रदर्शित हुनेछ।

स्थानीय समय मा स्वचालित रूपान्तरण संग युग को सुरु देखि सेकेन्ड को संख्या फिर्ता गर्नुहोस्

यदि तपाइँ यस्तो कार्यको सामना गर्दै हुनुहुन्छ भने, यो विधि प्रयोग गरी लागू गरिएको छ mktime(), जो लिन्छ संरचना_समय। त्यस पछि, यसले प्रकार्यको उल्टो कार्य गर्दछ स्थानीय समय() त्यो हो, यसले स्थानीय समय क्षेत्र अनुसार समयलाई समय क्षेत्रको लागि समायोजन गरी युगको सुरुदेखि बितिसकेका सेकेन्डहरूको संख्यामा रूपान्तरण गर्दछ।

mktime() र localtime() प्रकार्यहरू नजिकबाट गाँसिएका छन्। यो कोड स्निपेट स्पष्ट रूपमा यो देखाउँछ। यसले कसरी काम गर्छ अझ गहिरोसँग बुझ्नको लागि यसलाई हेरौं। 

आयात समय

सेकेन्ड = 1575721830

# संरचना_समय फर्काउँछ

t = time.localtime(सेकेन्ड)

छाप्नुहोस्("t1: ", t)

# struct_time बाट सेकेन्ड फर्काउँछ

s = time.mktime(t)

छाप्नुहोस् («ns:», सेकेन्ड)

हामी त्यो चर देख्छौं सेकेन्ड युगदेखि 1575721830 सेकेन्ड तोकिएको छ। पहिले, कार्यक्रमले सही मिति, समय र अन्य प्यारामिटरहरू प्राप्त गर्दछ, यो मानको आधारमा, यसलाई चलमा राख्नुहोस्। t, र त्यसपछि यसको सामग्रीलाई चरमा रूपान्तरण गर्दछ s.

त्यस पछि नयाँ लाइन बन्द गर्छ र कन्सोलमा सेकेन्डको संख्या प्रदर्शन गर्दछ। तपाईंले जाँच गर्न सक्नुहुन्छ कि यो सेकेन्ड चरमा तोकिएको संख्या उही हुनेछ।

9 नम्बरहरूबाट आउटपुट मिति जसले struct_time लाई जनाउँछ

मानौं हामीसँग वर्ष, महिना, मिति, हप्ताको दिन र अन्य मानहरूको प्रतिनिधित्व गर्ने ९ नम्बरहरू छन्, र हामीले तिनीहरूलाई एउटै स्ट्रिङमा जोड्न आवश्यक छ। यसको लागि, प्रकार्य प्रयोग गरिन्छ asctime()। उनी स्वीकार्छन् वा तयार हुन्छन् संरचना_समय, वा 9 मानहरूको कुनै अन्य टपल जुन उही हो। त्यस पछि, एक स्ट्रिङ फर्काइन्छ, जुन मिति, समय, र अन्य प्यारामिटरहरूको संख्या हो। 

फरक प्रयोगकर्ता-निर्दिष्ट डाटालाई एकल चरमा ल्याउन यो विधि प्रयोग गर्न धेरै सुविधाजनक छ।.

उदाहरणका लागि, यो एक कार्यक्रम हुन सक्छ जहाँ प्रयोगकर्ताले छुट्टै दिन, महिना, वर्ष, हप्ताको दिन, र घटनाको लागि दर्ता सम्बन्धी अन्य डेटा निर्दिष्ट गर्दछ। त्यस पछि, प्राप्त जानकारी डाटाबेसमा प्रविष्ट गरिन्छ र त्यसपछि अर्को व्यक्तिलाई जारी गरिन्छ जसले यसलाई अनुरोध गर्दछ।

पाइथन स्ट्रिङमा आधारित समय र मिति प्राप्त गर्दै

मानौं प्रयोगकर्ताले भिन्न डेटा निर्दिष्ट गरेको छ, र हामीले तिनीहरूलाई व्यक्तिले प्रविष्ट गरेको ढाँचामा एक लाइनमा संयोजन गर्न आवश्यक छ, र त्यसपछि अर्को चरमा प्रतिलिपि बनाउनुहोस्, र त्यहाँ मानक ढाँचामा पुन: निर्माण गर्नुहोस्। यसको लागि, प्रकार्य प्रयोग गरिन्छ time.strptime()।

यसले एउटा चर लिन्छ जसमा यो मान निर्दिष्ट गरिएको छ, र हामीलाई पहिले नै परिचित फर्काउँछ संरचना_समय.

स्पष्टताको लागि, हामी यस्तो कार्यक्रम लेख्नेछौं।

आयात समय

time_string = «१५ जुन, २०१९»

परिणाम = 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. सुविधाजनक ढाँचामा रूपान्तरण गर्नुहोस्। यसबाहेक, प्रोग्रामर आफैले सेट गर्न सक्छ कि कुन तत्वहरू प्रदर्शन गरिनेछ र कुन क्रममा। 

त्यहाँ अन्य सम्भावनाहरू पनि छन्, तर आज हामीले सबैभन्दा आधारभूत विश्लेषण गरेका छौं। तिनीहरू लगभग कुनै पनि कार्यक्रममा काममा आउनेछन् जुन कुनै न कुनै रूपमा समयसँग काम गर्दछ। भाग्यले साथ दिओस्।

जवाफ छाड्नुस्