如何在不指定本地化模式的情况下格式化本地化日期?

时间:2014-05-23 05:35:55

标签: java date datetime formatting simpledateformat

我有这种模式MMMM YYYY,但我的语言环境是es_MX,所以我得到了臭名昭着的java.lang.IllegalArgumentException: Unknown pattern character 'Y'例外。

问题是我在构造函数中得到了异常:

new SimpleDateFormat(pattern, locale);

因此,我无法仅使用Locale创建新实例(因此我可以应用带applyPattern的无区域设置模式),也不能在实例化后应用Locale所以我可以调用toLocalizedPattern(),以便它返回MMMM YYYY的本地化版本。

2 个答案:

答案 0 :(得分:3)

年份 - 模式为yyyy而不是YYYY

  

是这样吗?几个月前我有这个代码工作,案件从来都不是问题。 -

java 7 onwards supports Y并且它代表周年 - 所以此代码可能无异常地工作(尽管不是预期的)

java 6 or prior doesn't support Y因此无法解析

答案 1 :(得分:2)

模式yyyy小写适用于年份。

YYYY大写是针对周年。

请参阅API文档here