मुझे दिए गए प्रारूप में, 2014-01-02 की तिथि "20140102" द्वारा प्रदर्शित की जाएगी। यह सही ढंग से मानक strptime साथ पार्स किया गया है:पायथन का डेटाटाइम.datetime.strptime ('201412', '% Y% m% d') क्यों ValueError नहीं बढ़ाता है?
>>> datetime.datetime.strptime("20140102", "%Y%m%d")
datetime.datetime(2014, 1, 2, 0, 0)
इस प्रारूप में, "201,412" नहीं कोई मान्य दिनांक होगा। docs कहता है कि "% m" निर्देश "शून्य-गद्देदार दशमलव संख्या के रूप में महीना" है। यह उदाहरण "01, 02, ..., 12" के रूप में देता है। दिन निर्देश "% d" को भी शून्य-गद्दे माना जाता है।
इस पर आधारित, मुझे उम्मीद थी कि "201412" इस प्रारूप के साथ एक अवैध इनपुट होगा, इसलिए वैल्यूएरर बढ़ाएगा।
>>> datetime.datetime.strptime("201412", "%Y%m%d")
datetime.datetime(2014, 1, 2, 0, 0)
सवाल यह है:: वहाँ निर्दिष्ट करने के लिए एक तरह से "कोई गंभीरता से केवल शून्य गद्देदार" है इसके बजाय, यह 2014-01-02 के रूप में व्याख्या की जाती है? या क्या मैं इस संदर्भ में "शून्य-गद्देदार" शब्द को गलत समझ रहा हूं?
ध्यान दें कि प्रश्न इस प्रारूप में तिथियों को पार्स करने के बारे में नहीं है, लेकिन स्ट्रिपटाइम के व्यवहार को समझने के बारे में नहीं है।
यह वास्तव में आपकी मदद नहीं है, लेकिन यह कुछ हद तक संबंधित है (लगता है '/' अलग क्षेत्रों) [पार्स अजगर में गैर शून्य गद्देदार टाइमस्टैम्प] (http://stackoverflow.com/ प्रश्न/25279 993/पार्सिंग-गैर-शून्य-पैड-टाइमस्टैम्प-इन-पायथन) – metatoaster
मुझे लगता है कि यह नियमित अभिव्यक्ति पर निर्भर करता है कि फ़ंक्शन – kiviak
का उपयोग करता है जैसे कि पाइथन दस्तावेज़ों में कुछ अतिरिक्त स्पष्टीकरण अच्छा होगा। क्या यह गारंटी है कि 'strptime ("2014123", "% Y% m% d") हमेशा 'डेटाटाइम (2014, 12, 3, 0, 0)' देगी या यह' डेटाटाइम (2014, 1, 23, 0, 0) '? – Matthias