BST समय क्षेत्र के साथ खिड़कियों पर अजगर datetime.datetime.strptime का उपयोग करना

वोट
2

मैं कई अलग स्वरूपों के कई अलग अलग तारीखों पार्स करने के लिए की जरूरत है। मैं निम्नलिखित के साथ समस्या हो और सोचा कि अगर anyopne क्यों समझा सकता हूँ;

एक Linux सिस्टम पर निम्न काम करता है:

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM BST','%a %d %b %Y %H:%M:%S %p %Z')

लेकिन खिड़कियों के तहत चल रहा यह उठता है

ValueError: समय डेटा स्वरूप से मेल नहीं खाता

हालांकि, अगर मैं जीएमटी खिड़कियों पर BST नहीं की कोशिश है, यह ठीक काम करता है;

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM GMT','%a %d %b %Y %H:%M:%S %p %Z')

वहाँ एक कारण अजगर खिड़कियों के तहत BST समय क्षेत्र नहीं समझती है, लेकिन यह लिनक्स के तहत ठीक काम करता है?

धन्यवाद,

मैट।

24/08/2011 को 16:13
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

मेरी राय में, इस तरह एक तीन अक्षर समय क्षेत्र कोड को पार्स एक अच्छा अभ्यास नहीं है (जब तक कि बेशक आप कोई विकल्प नहीं है)। उदाहरण के लिए, "ईएसटी" आमतौर पर संयुक्त राज्य अमेरिका में यूटीसी-4/5 के लिए प्रयोग किया जाता है और यह भी आमतौर पर ऑस्ट्रेलिया में प्रयोग किया जाता है। तो "ईएसटी" के लिए कोई समर्थन इसलिए स्थान पर निर्भर होना चाहिए। यह मुझे आश्चर्य नहीं होगा अगर "BST" इसी तरह अस्पष्ट था।

मैं अत्यधिक उपयोग करने की अनुशंसा pytzमॉड्यूल जिसमें ब्रिटिश सिविल समय स्ट्रिंग पहचानकर्ता दिया जाता है Europe/Londonऔर यूटीसी कहा जाता है Etc/UTCpytzएपीआई संगत परिणाम उपयोगकर्ता या सिस्टम आवेदन चलाने का स्थान की परवाह किए बिना दे देंगे।

यदि आप एक यूआई कि स्थान में बंधे किया जाना चाहिए पर काम कर रहे हैं, या प्रारूप है जिसे आप बदल नहीं सकते साथ आदानों को पार्स है, तो करने के लिए संक्षिप्त रूपों का एक शब्दकोश के उपयोग पर विचार pytzसमयक्षेत्र वस्तुओं। उदाहरण के लिए: {'BST': 'Europe/London'}। फिर अपने आवेदन यूटीसी दिनांक और समय समान रूप से है, जो बहुत त्रुटियों की संभावना कम हो जाएगा के साथ काम कर सकते हैं।

24/08/2011 को 16:50
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more