के साथ अवैध पैटर्न वर्ण त्रुटि मैं कुछ SimpleDateFormat कोड को समझने की कोशिश कर रहा हूं। विशेष रूप से मैं SimpleDateFormat में स्थानीय पैटर्न स्ट्रिंग का उपयोग करने की कोशिश कर रहा हूं। javadoc से:SimpleDateFormat स्थानीय पैटर्न पैटर्न
SimpleDateFormat स्थानीयकृत दिनांक और समय पैटर्न स्ट्रिंग का भी समर्थन करता है। इन तारों में, ऊपर वर्णित पैटर्न अक्षरों को अन्य, लोकेल आश्रित, पैटर्न अक्षरों के साथ प्रतिस्थापित किया जा सकता है।
यह भी एक SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
निर्माता निर्दिष्ट करता है:
Constructs एक SimpleDateFormat दिए गए पैटर्न और दिनांक स्वरूप प्रतीकों का उपयोग।
public void run() { Locale loc = new Locale("de", "de"); DateFormatSymbols dfs = new DateFormatSymbols(loc); String sym = dfs.getLocalPatternChars(); System.out.println(sym); SimpleDateFormat datefmt = new SimpleDateFormat("tt.MM.uuuu", dfs); }
का उत्पादन उत्पादन:
GuMtkHmsSEDFwWahKzZ Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 't' at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:845) ...
मैं एक ही उत्पादन करता है, तो मिल
हालांकि, हालांकि getLocalPatternChars()
उदाहरण की उम्मीद पैटर्न वर्ण प्रस्तुत कर रहा है, SimpleDateFormat के कन्स्ट्रक्टर्स युक्त पैटर्न उन अक्षरों को अस्वीकार कर रहे हैं मैं "... new SimpleDateFormat("tt.MM.uuuu", loc);
" के साथ अंतिम पंक्ति को प्रतिस्थापित करता हूं।
दूसरी ओर, यदि मैं किसी भी Anglicized पैटर्न स्ट्रिंग का उपयोग कर एक SimpleDateFormat उदाहरण बनाते हैं, तो "applyLocalizedPattern("tt.MM.uuuu")
" पर कॉल करें, स्थानीय पैटर्न स्वीकार किया जाता है।
तो ऐसा लगता है कि कोई SimpleDateFormat के रचनाकारों में स्थानीय पैटर्न स्ट्रिंग का उपयोग नहीं कर सकता है, और इन दो-चरणीय प्रारंभिकरण की आवश्यकता है। क्या यह जानबूझकर व्यवहार है?
कन्स्ट्रक्टर 'translatePattern'' नहीं कहता है ('लागू लोकाइज्ड पैटर्न 'वह करता है), तो यह या तो एक बग या खराब जावाडॉक है जो कन्स्ट्रक्टर के उपयोग को स्पष्ट रूप से समझाता नहीं है। – Tom
@ टॉम सही है। कन्स्ट्रक्टर का पैटर्न पैरामीटर केवल अनौपचारिक दिनांक-समय-पैटर्न-वर्णों को संदर्भित करता है। –
यह भी देखें http://stackoverflow.com/a/24128930/2491410 –