संख्या और तारीख पार्स जैसे नए java.time
एपीआई का उपयोग लोकेल निर्दिष्ट करने के लिए, ठीक है, भाषा-विशिष्ट प्रतीकों का उपयोग करता। इस मामले में, यह अधिकतर pm
मान है जिसे अस्वीकार कर दिया जा रहा है।
इसकी पुष्टि करने के लिए, यहां वीएम में सभी उपलब्ध लोकेशंस का उपयोग करने के लिए कोड का एक टुकड़ा है।
उन लोगों के लिए जो काम नहीं करते हैं, मैं यह देखने के लिए उत्सुक था कि क्यों, एक समय को पार्स करने के बजाय, मैं इसके बजाय एक वैध समय प्रारूपित करता हूं। यूटीएफ -8 आउटपुट को सक्षम करना था, लेकिन यह देखना दिलचस्प है।
वाकई दिलचस्प बात यह है कि सभी स्पेनिश (es
) स्थानों, को छोड़कर संयुक्त राज्य अमेरिका विविधता (es_US
) ठीक काम करता है है। हममम ........
Set<String> good = new TreeSet<>();
Set<String> bad = new TreeSet<>();
for (Locale locale : Locale.getAvailableLocales()) {
try {
new SimpleDateFormat("hh:mmaa", locale).parse("01:20pm");
good.add(locale.toLanguageTag());
} catch (ParseException e) {
bad.add(locale.toLanguageTag());
}
}
System.out.println("Good locales: " + good);
Date time = new SimpleDateFormat("hh:mmaa", Locale.ENGLISH).parse("01:20pm");
System.out.println("Bad locales:");
for (String languageTag : bad)
System.out.printf(" %-5s: %s%n", languageTag, new SimpleDateFormat("hh:mmaa", Locale.forLanguageTag(languageTag)).format(time));
आउटपुट
Good locales: [be, be-BY, bg, bg-BG, ca, ca-ES, da, da-DK, de, de-AT, de-CH, de-DE, de-GR, de-LU, en, en-AU, en-CA, en-GB, en-IE, en-IN, en-MT, en-NZ, en-PH, en-SG, en-US, en-ZA, es, es-AR, es-BO, es-CL, es-CO, es-CR, es-CU, es-DO, es-EC, es-ES, es-GT, es-HN, es-MX, es-NI, es-PA, es-PE, es-PR, es-PY, es-SV, es-UY, es-VE, et, et-EE, fr, fr-BE, fr-CA, fr-CH, fr-FR, fr-LU, he, he-IL, hi, hr, hr-HR, id, id-ID, is, is-IS, it, it-CH, it-IT, lt, lt-LT, lv, lv-LV, mk, mk-MK, ms, ms-MY, nl, nl-BE, nl-NL, nn-NO, no, no-NO, pl, pl-PL, pt, pt-BR, pt-PT, ro, ro-RO, ru, ru-RU, sk, sk-SK, sl, sl-SI, sr, sr-BA, sr-CS, sr-Latn, sr-Latn-BA, sr-Latn-ME, sr-Latn-RS, sr-ME, sr-RS, tr, tr-TR, uk, uk-UA, und]
Bad locales:
ar : 01:20م
ar-AE: 01:20م
ar-BH: 01:20م
ar-DZ: 01:20م
ar-EG: 01:20م
ar-IQ: 01:20م
ar-JO: 01:20م
ar-KW: 01:20م
ar-LB: 01:20م
ar-LY: 01:20م
ar-MA: 01:20م
ar-OM: 01:20م
ar-QA: 01:20م
ar-SA: 01:20م
ar-SD: 01:20م
ar-SY: 01:20م
ar-TN: 01:20م
ar-YE: 01:20م
cs : 01:20odp.
cs-CZ: 01:20odp.
el : 01:20μμ
el-CY: 01:20ΜΜ
el-GR: 01:20μμ
es-US: 01:20p.m.
fi : 01:20ip.
fi-FI: 01:20ip.
ga : 01:20p.m.
ga-IE: 01:20p.m.
hi-IN: ०१:२०अपराह्न
hu : 01:20DU
hu-HU: 01:20DU
ja : 01:20午後
ja-JP: 01:20午後
ja-JP-u-ca-japanese-x-lvariant-JP: 01:20午後
ko : 01:20오후
ko-KR: 01:20오후
mt : 01:20WN
mt-MT: 01:20WN
sq : 01:20MD
sq-AL: 01:20MD
sv : 01:20em
sv-SE: 01:20em
th : 01:20หลังเที่ยง
th-TH: 01:20หลังเที่ยง
th-TH-u-nu-thai-x-lvariant-TH: ๐๑:๒๐หลังเที่ยง
vi : 01:20CH
vi-VN: 01:20CH
zh : 01:20下午
zh-CN: 01:20下午
zh-HK: 01:20下午
zh-SG: 01:20下午
zh-TW: 01:20下午
हो सकता है यह स्थान मुद्दा है? डिफ़ॉल्ट रूप से आपका क्या है? Locale.US –
पास करने का प्रयास करें जो आप जेडीके का उपयोग कर रहे हैं, यह जेडीके_1.8 –
लॉर्ड के साथ बहुत बढ़िया काम करता है, यह एक लोकल मुद्दा था !!!! क्या .. पृथ्वी पर क्यों लोकल एक मुद्दा होगा? क्या वास्तव में अन्य लोकेशंस हैं जो एचएच का अर्थ है: एमएमए व्यापक रूप से अलग है? – Xiagua