Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring-DateFormat未正确设置中国的日期格式_Java_Spring_Date Format_Date Formatting - Fatal编程技术网

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);