Có thể truy xuất mẫu mặc định cho một ngôn ngữ cụ thể, mà không cần truyền một đối tượng được trả về bởi DateFormat.get*Instance()
đến SimpleDateFormat
? Tôi hiểu rằng, trong hầu hết mọi trường hợp mọi thứ sẽ ổn, nhưng có một ghi chú trong javadoc
, here: "Nếu bạn muốn kiểm soát nhiều hơn đối với định dạng hoặc phân tích cú pháp, (hoặc muốn cung cấp cho người dùng nhiều quyền kiểm soát hơn), bạn có thể thử đúc số DateFormat
mà bạn nhận được từ các phương thức của nhà máy đến một số SimpleDateFormat
. Điều này sẽ làm việc cho đa số các quốc gia; chỉ cần nhớ đặt nó trong khối try
trong trường hợp bạn gặp phải một số bất thường. "Có cách nào khác để lấy mẫu mặc định cho một miền địa phương cụ thể không?
Vì vậy, tôi tự hỏi, tôi nên làm gì trong trường hợp tôi "gặp phải một bất thường"?
mẫu Mã số:
/**
* Returns '\n'-separated string with available patterns.
* Optional adds appropriate language code to each pattern string.
*
* @param showLanguage Defines if language info is required.
* @return String with available patterns, optional (if showLanguage is set
* to "true") adds appropriate language code to each pattern.
*/
public String getPatternsForAvailableLocales(Boolean... showLanguage) {
/* Array of available locales */
Locale[] locales = DateFormat.getAvailableLocales();
String result = "";
for (Locale locale : locales) {
/* Add language info, if necessary */
if ((showLanguage.length > 0) && (showLanguage[0])) {
result += locale.getLanguage() + '\t';
}
/* Retrieving pattern */
try {
result += ((SimpleDateFormat)
DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT, locale)).toPattern();
} catch (ClassCastException e) {
// ******************************** //
// What's up? Is there another way? //
// ******************************** //
}
result += '\n';
}
return result;
}
Tôi không chắc chắn nếu bạn có thể làm bất cứ điều gì nếu bạn "gặp phải một bất thường" bởi vì nó có thể không dựa trên mẫu. Đặc biệt là bởi vì một nhà phát triển có thể cung cấp 'DateFormat' của riêng họ thông qua' java.text.spi.DateFormatProvider'. –