अजगरdateutil पुस्तकालय (और अधिक) इस के लिए बनाया गया है। यह स्वचालित रूप से आपके लिए एक datetimeऑब्जेक्ट में परिवर्तित कर देगा और ValueErrorअगर यह नहीं कर सकता है तो बढ़ाएं ।
उदहारण के लिए:
>>> from dateutil.parser import parse
>>> parse("2003-09-25")
datetime.datetime(2003, 9, 25, 0, 0)
ValueErrorयदि तारीख सही ढंग से स्वरूपित नहीं की जाती है तो यह बढ़ जाता है:
>>> parse("2003-09-251")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
ret = default.replace(**repl)
ValueError: day is out of range for month
dateutilभविष्य में अन्य स्वरूपों को पार्स करने की आवश्यकता होने पर भी यह अत्यंत उपयोगी है, क्योंकि यह अधिकांश ज्ञात स्वरूपों को समझदारी से संभाल सकता है और आपको अपने विनिर्देश को संशोधित करने की अनुमति देता है: dateutilउदाहरणों को पार्स करना ।
जरूरत पड़ने पर यह टाइमजोन को भी हैंडल करता है।
टिप्पणियों के आधार पर अपडेट करें : parseकीवर्ड तर्क को भी स्वीकार करता है dayfirstजो यह नियंत्रित करता है कि क्या दिन या महीने पहले आने की उम्मीद है अगर कोई तारीख अस्पष्ट है। यह असत्य की अवहेलना करता है। उदाहरण के लिए
>>> parse('11/12/2001')
>>> datetime.datetime(2001, 11, 12, 0, 0) # Nov 12
>>> parse('11/12/2001', dayfirst=True)
>>> datetime.datetime(2001, 12, 11, 0, 0) # Dec 11