2016-07-04 4 views
5

मैं बस एक समय-समय पर बनाने की कोशिश कर रहा हूं निम्न तिथि से ऑब्जेक्ट: 'शुक्र मार्च 11 15:59:57 ईएसटी 2016' प्रारूप का उपयोग करते हुए: '% a% b% d% एच:% एम:% एस% जेड% वाई'।ValueError समय डेटा 'शुक्र मार्च 11 15:59:57 ईएसटी 2016' प्रारूप%%%%%%%% से मेल नहीं खाता है:% एम:% एस% जेड% वाई '

यहां कोड है।

from datetime import datetime 
date = datetime.strptime('Fri Mar 11 15:59:57 EST 2016', '%a %b %d %H:%M:%S %Z %Y') 

हालांकि, यह नीचे दिखाए गए वैल्यूएरर में परिणाम देता है।

ValueError: time data 'Fri Mar 11 15:59:57 EST 2016' does not match format '%a %b %d %H:%M:%S %Z %Y' 

शायद मुझे मेरी प्रारूप स्ट्रिंग के साथ कुछ गलत याद आ रही है, लेकिन मैंने इसे और अधिक बार जांच लिया है। किसी भी सहायता का स्वागत है, धन्यवाद। अधिक जानकारी के लिए टिप्पणी/सवाल प्रतिबिंबित करने के लिए

संपादित करें:

अजगर संस्करण मैं उपयोग कर रहा हूँ 2.7.6 है।

$ locale 
LANG=en_US.UTF-8 
LANGUAGE= 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_PAPER="en_US.UTF-8" 
LC_NAME="en_US.UTF-8" 
LC_ADDRESS="en_US.UTF-8" 
LC_TELEPHONE="en_US.UTF-8" 
LC_MEASUREMENT="en_US.UTF-8" 
LC_IDENTIFICATION="en_US.UTF-8" 
LC_ALL= 
+2

मैंने आपके कोड की कोशिश की और यह मेरे लिए काम करता है; आप पाइथन का किस संस्करण का उपयोग कर रहे हैं? –

+0

मैं पाइथन का उपयोग कर रहा हूं 2.7.6 –

+0

क्या आप किसी ऐसे कंप्यूटर का उपयोग कर किसी भी मौके से हैं जो गैर-अंग्रेजी लोकेल सेटिंग का उपयोग करता है? –

उत्तर

8

% जेड विनिर्देशक के लिए, strptime केवल पहचानता है "यूटीसी", "GMT" और जो कुछ भी (time.tzname में है, इसलिए चाहे वह पहचानता है:

Ubuntu 14.04 पर 'स्थान' कमांड का उपयोग करते हुए मैं इस मिल "ईएसटी" आपके कंप्यूटर के समय क्षेत्र पर निर्भर करेगा)। यह issue 22377 है।

देखें: यदि आप अजगर स्थापित नहीं कर सकता, तो

import dateutil 
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016' 

: Python strptime() and timezones? और Parsing date/time string with timezone abbreviated name in Python?

समय क्षेत्र है कि एक मानव पठनीय समय क्षेत्र शामिल हैं पार्स करने के लिए सबसे अच्छा विकल्प अभी भी तीसरे पक्ष के python-dateutil लाइब्रेरी का उपयोग करने के लिए है -डेटीटिल, आप टाइमज़ोन को बाहर निकाल सकते हैं और इसे मैन्युअल रूप से पार्स कर सकते हैं एक शब्दकोश लुकअप का उपयोग कर।

+0

समस्या का प्रयास कर सकते हैं। समस्या भी यहां होती है। दरअसल, मुझे लगा कि समस्या 'ईएसटी' सबस्ट्रिंग थी और आपने अभी समस्या की पुष्टि की थी। इस मामले में, क्या इन तारों को पार्स करने और इस मुद्दे से बचने का कोई सुरक्षित तरीका है? –

+1

@ JeandersonBarrosCandido सबसे अच्छा विकल्प है Python-dateutil का उपयोग करना। मैंने इसे जोड़ने के लिए अपना जवाब अपडेट कर दिया है, धन्यवाद। – ecatmur

+0

वह था। धन्यवाद! –

संबंधित मुद्दे

 संबंधित मुद्दे