2012-03-14 18 views
6

के साथ टाइमज़ोन प्रारूप को पार्स करने के लिए सही पैटर्न क्या है, मैं मौजूदा तारों को पार्स करने के लिए जावा SimpleDaterFormat के लिए एक पैटर्न को परिभाषित करना चाहता हूं।SimpleDateFormat

मौजूदा तिथियां इस तरह दिखती हैं: 2011-05-02T13:40:00+02:00

मैंने विभिन्न पैटर्न के साथ प्रयास किया, लेकिन मुझे ParseExceptions मिला। समस्या टाइमज़ोन प्रारूप प्रतीत होती है।

जावा में पैटर्न मुद्रण:

  • yyyy-MM-dd'T'HH:mm:ssZ
    • 2012-03-14T15:40:44+0100
  • yyyy-MM-dd'T'HH:mm:ssz
    • 2012-03-14T15:41:58MEZ

लेकिन मैं

  • कैसे प्राप्त कर सकते हैं ???
    • 2011-05-02T13:40:00+02:00

मैं जावा 6, नहीं जावा 7.

उत्तर

5

उपयोग कर रहा हूँ आप जावा 7 या नए का उपयोग कर सकते हैं, तो आप XXX पैटर्न का उपयोग देखने के लिए समय क्षेत्र प्राप्त करने के लिए कर सकते हैं की तरह 02: 00:

yyyy-MM-dd'T'HH:mm:ssXXX 

नहीं तो आप दिनांक स्ट्रिंग हेरफेर करने के लिए समय क्षेत्र befor से पेट के दूर करने के लिए हो सकता है ई इसे पार्सिंग।

+0

Thx रूप में अच्छी तरह उपयोग कर सकते हैं जावा 6. साथ आप अधिक उदाहरण है। हां आईएसओ 8601 समय क्षेत्र के लिए समर्थन जावा 7 के साथ महसूस किया गया है, लेकिन मेरा आवेदन जावा 1.6 के तहत चलता है। – cuh

+1

हो सकता है कि आप इसे फिर से फॉर्मेटर में पास करने से पहले कोलन को हटा दें? मुझे लगता है कि इस रेगेक्स का केवल प्रभाव होना चाहिए यदि कोलन वहां है: dateString.replaceFirst ("(\\ d \\ d): (\\ d \\ d) $", "$ 1 $ 2") – matts

+0

मैं संशोधित नहीं कर सकता पहले स्ट्रिंग। मैं डेटा का एक सेट आयात करने के लिए एक उपकरण का उपयोग करता हूं और केवल एक पैटर्न को परिभाषित कर सकता हूं। – cuh

0

मुझे पता है कि यह एक छोटा सा सवाल है, लेकिन किसी और को मेरे संकेत से फायदा हो सकता है। आप JodaTime का उपयोग कर सकते हैं। पुस्तकालय documentation खड़ा के रूप में:

जोन: 'Z' आउटपुट, एक पेट के बिना भरपाई 'ZZ' एक कॉलन, 'ZZZ' या अधिक outputs क्षेत्र आईडी साथ ऑफसेट आउटपुट।

आप में this question

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