Java Spring-DateFormat未正确设置中国的日期格式
我有一个班级正在准备从Java Spring-DateFormat未正确设置中国的日期格式,java,spring,date-format,date-formatting,Java,Spring,Date Format,Date Formatting,我有一个班级正在准备从db格式到2015年2月13日的日期。不幸的是,此函数适用于英语、法语,但不适用于汉语 以下是我得到的: public class DateFormatTag extends TagSupport { @Override public int doStartTag() throws JspException { out.println(dateFormat(getInput())); } public String dateF
db格式
到2015年2月13日的日期。不幸的是,此函数适用于英语、法语,但不适用于汉语
以下是我得到的:
public class DateFormatTag extends TagSupport {
@Override
public int doStartTag() throws JspException {
out.println(dateFormat(getInput()));
}
public String dateFormat(String input) throws ParseException {
Locale locale = new Locale("cn", "zh");
DateFormat df = new SimpleDateFormat("yyyy/MM/dd", locale);
Date date = df.parse(input);
SimpleDateFormat returnFormat = new SimpleDateFormat("dd MMMMM yyyy", locale);
return returnFormat.format(date);
}
为了测试,我特意硬编码了中文语言环境。输入格式为:2015/02/15(yyyy/mm/dd)
我找不到更好的办法来解决这个问题。如有任何建议,将不胜感激
解决方案可以在Joda Time或Java嵌入式类中提供。对于您的输入格式,您不必使用locale构建
SimpleDataFormat
。对于输出,应该读取
我认为你应该使用感谢你的输入,我当然会研究它,但我们更愿意使用嵌入式Java国际化。在生产应用程序中,用户应根据所选国家和语言显示日期。区域设置是在dateFormat方法的第一行中创建的。您能提供一个joda time中的示例吗?@TheKolaNN只是想确定一下,您对该代码的预期输出是什么?
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Date date = df.parse(input);
SimpleDateFormat returnFormat
= new SimpleDateFormat("dd MMMMM yyyy", Locale.CHINA);
// or Locale.CHINESE, Locale.PRC, all work on my machine
return returnFormat.format(date);