首先,jre中的日期格式以许多地区的错误行为而闻名(无效的波兰语、捷克语和俄语长日期、无效的波兰语短日期;这只是我确信知道的示例)。所以我不太相信这个信息来源。
如果要实现自己的长日期格式逻辑,我将执行以下操作:
String spanishDatePattern = "{0,number,00} {1} {2,number,####}";
String spanishLongDateMonthNameNovember = "de noviembre de";
Object[] arguments = { new Integer(date.getDate()),
spanishLongDateMonthNameNovember,
new Integer(date.getYear()) };
String formattedDate = MessageFormat.format(spanishDatePattern,
arguments);
在这种情况下,每种语言需要13条消息(12个月的名称和1个模式)。不多,我相信。
当然,这只是一个例子,实际上,您可能还需要添加逻辑来解析月份名称(具有名称以月份号结尾的键,即longdateformatonmonthname.0=January?).